github kizuna-ai-lab/sokuji v0.47.0

3 hours ago

Echo cancellation now removes Sokuji's own speech

Sokuji only echo cancellation removes Sokuji's translated speech again, so the translation no longer comes back through your microphone when you use speakers. On Linux, where this is the only mode, you get the benefit automatically. Translations also start playing sooner, and the delay no longer grows during a session. (#673)

Face-to-face: every translation is spoken

  • If someone switches to the other person's language mid-conversation, the translation of those sentences is now read aloud, in the voice and on the output of its language. This applies to Soniox face-to-face and shared Both. (#671)
  • These sentences have their own replay button and karaoke highlight. (#671)
  • In face-to-face settings, the two speech rows are now named by language, so it is clear which device plays which translation. (#671)

Doubao AST 2.0

  • A pause no longer triggers a false "Speech playback is degraded" notice. (#672)

Full Changelog: v0.46.5...v0.47.0

All commits since v0.46.5
  • chore(release): v0.47.0
  • Merge pull request #673 from kizuna-ai-lab/fix/output-context-sinks
  • fix(audio): a rebuild a switch overtook reports no failure
  • fix(audio): a switch that never answers cannot hold recovery off
  • Merge pull request #672 from kizuna-ai-lab/fix/ast2-empty-clip
  • fix(audio): a sink's rebuild cap counts a run, and a hung rebuild retries
  • fix(audio): a sink's switch resolves only if the sink moved
  • fix(volcengine_ast2): a page of an unknown Ogg stream version is the decoder's, not silence
  • fix(volcengine_ast2): only whole header pages count as silence; anything past them goes to the decoder
  • fix(audio): the outlets play through contexts the echo canceller hears
  • test(audio): a sink that never ran sees a state change too
  • feat(audio): a context sink recovers from a vanished device
  • feat(audio): a context sink switches device on a new context
  • feat(audio): an output sink on its own AudioContext
  • docs(audio): plan the output context sinks
  • docs(audio): design the output context sinks
  • Merge pull request #671 from kizuna-ai-lab/feat/f2f-language-routing
  • fix(volcengine_ast2): a clip of Opus header pages alone is silence, not a decode failure
  • fix(soniox): a core's two voices number a row's audio entries together
  • fix(playback): a replay's voice comes from an entry that will play, else the row's own
  • fix(playback): forward the clip's voice from the app's playback port; replay from an entry that will play
  • feat(contract): a row keeps the audio another leg's voice read for it — audio.voice
  • chore(face-to-face): the tooltip names one choice, device and side together, as the list is
  • chore(face-to-face): say the row's tooltip plainly — pick the device and the side the listener wears
  • fix(face-to-face): an auto source keeps the generic row name; foreign chunks never enter the held text
  • feat(face-to-face): name each speech row by where its language's translation plays
  • feat(soniox): read a translation in the voice of its language, face-to-face and shared Both

Don't miss a new sokuji release

NewReleases is sending notifications on new releases.