Feature idea: built-in real-time "voice-to-voice" conversion using Piper TTS voices #1849
Tamila-2017
started this conversation in
Ideas
Replies: 1 comment 1 reply
|
To be honest, this is not Handy's purpose. |
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Feature idea
It would be great if Handy could offer an optional real-time "voice-to-voice" mode: take the microphone input, run it through Handy's own STT, then immediately synthesize the same text with a chosen Piper voice (see the voice list/samples at https://rhasspy.github.io/piper-samples/) and output it to a virtual microphone device - effectively an offline voice changer. Useful for anonymized calls (Telegram, Discord, etc.), accessibility, or just fun/privacy use cases.
What we already tried
We built exactly this as an external pipeline around Handy, using the "External Script" paste method: Handy's STT result gets passed to a script that runs it through Piper TTS (CPU, fully offline) and plays the result into a PulseAudio virtual sink (module-null-sink) that another app (Telegram) picks up as its "microphone".
It technically works, but we hit two serious problems that would probably need first-class support inside Handy (rather than shell-script glue around it) to fix properly:
We eventually gave up on the external-script approach specifically because of this delay/stability problem. If this became a built-in Handy feature with a proper native audio output path (instead of routing through a null-sink and its monitor), it would likely avoid this whole class of bug.
To be clear, this is a request for generic offline TTS voices (like Piper's existing voice list), not for cloning any specific real person's voice.
All reactions