github murtaza-nasir/speakr v0.10.23-alpha

one hour ago

Speakr v0.10.23-alpha

In this release, the segment editor is rebuilt with a timeline and undo, long transcripts are shown quickly on every page, site admins can let others create groups, and admins can set who users can find when sharing. A security fix for the public share page is included.

New

  • Segment editor. In the transcript editor, the segments are listed beside a timeline with the waveform. On the timeline, segments can be moved or resized by clicking and dragging, with snapping to neighboring segments. Every change can be undone and redone, unsaved work is kept as a draft, and voice matches are offered as labeled suggestions per speaker. A speaker can be renamed everywhere, or merged into another speaker, by clicking its name in the timeline, and an empty speaker can be added with Add speaker and removed again. With Update the summary, the summary is generated again after saving.
  • Find in a transcript. On a long transcript, a find bar is opened with Ctrl+F, and the whole transcript is searched. The same find bar is available on the public share page and in the Identify speakers dialog.
  • Public share page. On a shared link, the transcript is shown in the layout of the recording page. Playback can be started from a line by clicking it, the current line is highlighted during playback, and the view can be returned to it with Follow.
  • Who can create groups. The permission_create_groups setting in System Settings can be used to set who can create groups: site admins only (the default), selected users and members of selected groups, or everyone. A user who creates a group becomes its group admin. (#576)
  • Who users can find when sharing. The user_search_scope setting (USER_SEARCH_SCOPE in .env) can be used to set who a user can find: everyone by part of a username, only people in their groups, or nobody without the full username or full email address.
  • Asynchronous WhisperX jobs. With the WhisperX ASR service 0.5.0 or later, a transcription is submitted as a job and polled, so a long recording is no longer bound to one open request. The job is deleted from the service when the transcription ends or fails, or when the recording is deleted.

Changed

  • Long transcripts. On the recording page, on the public share page and in the Identify speakers dialog, only the rows near the screen are rendered, as in the segment editor. A transcript of 20,000 segments is shown in under a second and can be scrolled smoothly. The whole transcript is still printed.
  • Folder and tag chips. In every theme, a folder is marked by a folder icon in its color and a group tag by a people icon in its color, in place of the color dot. Plain tags keep the dot, and a folder or tag shared by someone else has a small share icon after its name.
  • Dialogs. Confirmations and prompts are shown in the interface theme in place of the browser's dialogs.
  • User search. Only usernames are matched by a partial search. An email address is matched only when typed in full, only usernames are shown in the results, and each user is limited to 30 searches a minute.
  • Group and folder sharing settings. A change to the sharing settings of a group tag or folder is applied to its existing recordings: access is added or removed to match. Shares made by hand are kept.
  • Log content. Transcript, summary, title, prompt and query text are written to the log only at the DEBUG level. At the default level, ids, lengths and counts are logged in their place. (discussion #603)
  • Group names. A new group name must be unique without regard to case. Existing groups with the same name can still be edited.
  • Adding group members. A group admin who is not a site admin adds a member by full username or full email address.
  • Edit speakers. The separate Edit speakers dialog is removed. Speakers are renamed in the segment editor and in Identify speakers.

Fixed

  • Security: text in shared summaries and notes. On a public share page, text of the form ${ ... } in a shared summary, in shared notes or in a readable transcript was evaluated as an expression in the visitor's browser. Shared content is now shown as written. Updating is recommended for instances with public links.
  • Voice-match suggestion for a second speaker. When one person matches two speaker labels, the suggestion is kept for both, and the two are merged when it is accepted for the second.
  • Opening a recording while another is loading. When a recording was opened while a longer one was still loading, the longer one could be shown in its place. The recording opened last is now the one shown.
  • Translation in API v1. transcription_translation_language is returned with every recording detail, the translation text is returned as transcription_translation when translation is named in include, and has_translation is added to the list entries. (#614)
  • Account language lists. On the account page, the transcription language can be chosen from the same 100 languages as in the upload options, and the output language list and the translation menu are extended to match. A stored language outside the list is kept when the preferences are saved. (#613)
  • Dark mode on the share page. With a dark system setting, the first click on the dark mode button had no effect.
  • Moving a tag into a group. A tag cannot be moved into a group that already has a tag with the same name.
  • Personal notes. Personal notes on a shared recording are kept when access ends.
  • Stale files after an update. Scripts and stylesheets are loaded with the version in their address, so files from the previous version are not kept by the browser.

Upgrading

Pull the new image and start as usual. Existing behavior is kept unless noted below. No action is required.

  • WhisperX. Asynchronous jobs are used automatically when the service is 0.5.0 or later. To keep the previous single request, set ASR_ASYNC_JOBS=false in .env or turn off asr_async_jobs in System Settings.
  • User search. Without USER_SEARCH_SCOPE and without a saved value, the level is taken from SHOW_USERNAMES_IN_UI as before: everyone when it is true, exact when it is false. At every level, email addresses are no longer matched by a partial search and are no longer included in the results.
  • Sharing through the API. In POST /api/recordings/<id>/share-internal, identifier (a full username or email address) is accepted beside user_id. A bare user_id is accepted at everyone, is accepted at groups only for a person in a shared group, and is refused at exact, where identifier is used. Site admins are not restricted.
  • Group and folder shares. Access that was given automatically by a group tag or folder and no longer matches its settings is removed at the next change to the tag, folder or membership. Shares made by hand are not touched.
  • Group creation. The default of permission_create_groups is admins, so nothing changes until an admin sets it.
  • API v1. In PUT /api/v1/tags/{id}, group_id, auto_share_on_apply and share_with_group_lead are applied, and the share scope is required for an update through which shares are created. can_create_groups is included in /me and /capabilities.
  • Logs. Tools that read titles, queries or summary text from the log at the default level will no longer find them there; set LOG_LEVEL=DEBUG to have them logged.
  • Public share page. Only the speaker, start, end and text of each segment are sent to a shared link, and the internal recording id and the participants field are no longer sent. With READABLE_PUBLIC_LINKS, the plain transcript is in a <noscript> block of the page, once. Tools that read the previous markup of the page have to be pointed at that block.
  • Waveform cache. Waveforms for the timeline are stored in _peaks in the upload folder, about 1 MB per hour of audio. The folder can be left out of backups.
  • Going back to v0.10.22. The new settings and the _peaks folder are ignored.

Full Changelog: v0.10.22-alpha...v0.10.23-alpha

Don't miss a new speakr release

NewReleases is sending notifications on new releases.