English | 简体中文
I Can Not Speak is a Windows-only text-to-speech assistant that uses the system SAPI 5 voices and streams audio through a virtual microphone. The UI is built with Flet and targets users who need to play synthesized speech into voice chat or conferencing software.
- Enumerates playback devices and selects a virtual microphone (tested with VB-Audio VB-CABLE).
- Optional local monitor output so you can hear the audio while it streams to the virtual device.
- Adjustable speech rate and volume with instant feedback.
- Asynchronous speech queue powered by Windows SAPI for offline voice synthesis.
- Operating system: Windows 10 or later (SAPI 5 is required). The app does not run on macOS or Linux.
- Virtual microphone: VB-Audio VB-CABLE or another compatible virtual audio device. Install and enable it before launching the app.
- Python: 3.12+ (managed via uv in this project).
Install dependencies with uv (this creates the virtual environment on first run):
uv syncMake sure VB-CABLE is installed and that at least one SAPI voice is available in Windows Settings → Time & Language → Speech.
Launch the desktop UI with:
uv run i-can-not-speakIf you add new SAPI voices or audio devices while the app is open, use the refresh button inside the UI to reload the device list.
The project follows the structure required by flet build. To produce a Windows bundle:
flet build windows -vEnsure Visual Studio Build Tools and the Flutter desktop prerequisites are installed, as described in the Flet publishing guide.
- No voices available: install an additional SAPI voice in Windows settings.
- VB-CABLE missing: install VB-CABLE and reboot if it does not show up in the device list.
- Audio clipping: reduce the speech volume slider inside the app or lower the gain on the destination application.
This project is distributed under the terms specified in the repository. External dependencies retain their respective licenses.