feat: Add SiliconFlow TTS API support with custom base URL and model selection
This commit adds comprehensive support for using SiliconFlow's TTS API as an alternative to OpenAI, including: Features: - Configurable API base URL (Settings > API Base URL) - TTS model selection dropdown (CosyVoice2-0.5B, OpenAI compatible models) - Dynamic voice options based on selected model - Editable voice dropdown (Combobox) supporting custom voice IDs - Automatic voice formatting for SiliconFlow (model:voice format) - Debug logging for troubleshooting API calls - Warning for incorrect base URL format Changes: - utils/settings_manager.py: Added api_base_url and tts_model settings - utils/text_to_mic.py: - Added get_available_tts_models() for model options - Added get_siliconflow_voices() for SiliconFlow voices - Added change_api_base_url() method with validation - Added TTS model dropdown in GUI - Converted voice dropdown to Combobox for typing support - Added on_voice_exit() for validation - Updated API call to use selected model and formatted voice - text-to-mic-cli.py: Added OPENAI_API_BASE_URL and OPENAI_TTS_MODEL env var support - Readme.md: Updated documentation with SiliconFlow usage instructions Supported Models: - FunAudioLLM/CosyVoice2-0.5B (SiliconFlow - multi-language, emotional) - tts-1, tts-1-hd (OpenAI compatible) - gpt-4o-mini-tts (OpenAI default) SiliconFlow Voices (CosyVoice2-0.5B): - Male: alex, benjamin, charles, david - Female: anna, bella, claire, diana - Custom voices via voice ID entry Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
35
Readme.md
35
Readme.md
@@ -65,12 +65,29 @@ https://platform.openai.com/docs/quickstart/account-setup
|
||||
|
||||
6. You can change the API key at any time under the 'Settings' menu.
|
||||
|
||||
7. (Optional) You can also configure a custom API Base URL under 'Settings > API Base URL' to use compatible API endpoints other than OpenAI. For example, to use SiliconFlow's API, set the base URL to `https://api.siliconflow.cn/v1` (Note: use just the base URL, NOT the full endpoint path). Leave empty to use OpenAI's default endpoint.
|
||||
|
||||
8. (Optional) You can select different TTS models from the "TTS Model" dropdown. When using SiliconFlow, the CosyVoice2-0.5B model will be available with 8 built-in voices (alex, anna, bella, benjamin, charles, claire, david, diana). The voice options will update automatically based on the selected model.
|
||||
|
||||
9. (Optional) The Voice dropdown supports both selecting from the list and typing custom voice IDs. Click on the voice field to type a custom voice ID (e.g., for SiliconFlow custom voices like `speech:your-voice-name:xxxx`). This is useful if you've uploaded custom voice samples to SiliconFlow.
|
||||
|
||||
This tool was brought to you by Scorchsoft - We build custom apps to your requirements. Please contact us if you have a requirement for a custom app project.
|
||||
|
||||
## Advanced Tips
|
||||
|
||||
|
||||
### 1. ChatGPT AI Manipulation
|
||||
### 1. Custom Voices with SiliconFlow
|
||||
|
||||
When using SiliconFlow's API, you can upload your own voice samples and use them by entering the custom voice ID in the Voice dropdown. To upload a custom voice:
|
||||
|
||||
1. Upload your voice sample to SiliconFlow (see their documentation)
|
||||
2. You'll receive a voice ID like: `speech:your-voice-name:cm04pf7az00061413w7kz5qxs:mjtkgbyuunvtybnsvbxd`
|
||||
3. Click on the Voice dropdown and type/paste this custom voice ID
|
||||
4. The app will use this custom voice for TTS
|
||||
|
||||
For more information on uploading custom voices, see: [SiliconFlow Text-to-Speech Documentation](https://docs.siliconflow.cn/en/userguide/capabilities/text-to-speech)
|
||||
|
||||
### 2. ChatGPT AI Manipulation
|
||||
|
||||
If you go to "Settings > ChatGPT Manipulation" then you can turn this on and pick which model to use.
|
||||
|
||||
@@ -104,6 +121,22 @@ run the executable or "python text-to-mic.py"
|
||||
https://vb-audio.com/Cable/
|
||||
|
||||
## 2) ensure the OpenAI API key is specified in the .env file
|
||||
You can also optionally set `OPENAI_API_BASE_URL` in the .env file to use a compatible API endpoint other than OpenAI. For example, to use SiliconFlow's API:
|
||||
```
|
||||
OPENAI_API_KEY=your_api_key_here
|
||||
OPENAI_API_BASE_URL=https://api.siliconflow.cn/v1
|
||||
OPENAI_TTS_MODEL=FunAudioLLM/CosyVoice2-0.5B
|
||||
```
|
||||
**Important:** Use just the base URL (e.g., `https://api.siliconflow.cn/v1`), NOT the full endpoint path (don't add `/audio/speech`).
|
||||
|
||||
Leave `OPENAI_API_BASE_URL` empty to use OpenAI's default endpoint.
|
||||
|
||||
Available TTS models:
|
||||
- `tts-1` (OpenAI standard, default)
|
||||
- `tts-1-hd` (OpenAI high quality)
|
||||
- `gpt-4o-mini-tts` (OpenAI)
|
||||
- `FunAudioLLM/CosyVoice2-0.5B` (SiliconFlow - multi-language, emotional TTS)
|
||||
|
||||
This sets up a virtual microphone that we can use to sent text to speech audio to. Then, when you join a meeting, such as a google meeting, you can select this virtual cable to hear the audio being sent on the channel.
|
||||
|
||||
## 3) Run the script:
|
||||
|
||||
Reference in New Issue
Block a user