feat: integrate Silero TTS as default TTS engine

- Add SileroTTS service with GPU/CPU support
- Update TTS API to support configurable engines (silero/edge)
- Add TTS_ENGINE and SILERO_SPEAKER config options
- Set Silero as default TTS engine
- Update requirements.txt with silero dependency
This commit is contained in:
Azimkin
2026-04-08 16:06:21 +02:00
parent c7d023e5ef
commit e12660db95
5 changed files with 112 additions and 4 deletions

View File

@@ -7,6 +7,7 @@ from flask import current_app, request, send_file
from flask_restx import Namespace, Resource, fields
from app.models.voice import Voice
from app.services.edge_tts_service import EdgeTTSService
from app.services.silero_tts_service import SileroTTSService
from app.services.seed_vc_service import SeedVCService
logger = logging.getLogger(__name__)
@@ -110,10 +111,17 @@ class TTS(Resource):
final_output = os.path.join(output_dir, f"{output_id}_converted.wav")
try:
# Step 1: Generate TTS with Edge-TTS
logger.info("Step 1: Generating TTS with Edge-TTS")
edge_tts_voice = current_app.config['EDGE_TTS_VOICE']
tts_service = EdgeTTSService(voice=edge_tts_voice)
# Step 1: Generate TTS
tts_engine = current_app.config.get('TTS_ENGINE', 'silero')
logger.info(f"Step 1: Generating TTS with {tts_engine}")
if tts_engine == 'silero':
silero_speaker = current_app.config.get('SILERO_SPEAKER', 'v5_ru')
tts_service = SileroTTSService(speaker=silero_speaker)
else:
edge_tts_voice = current_app.config['EDGE_TTS_VOICE']
tts_service = EdgeTTSService(voice=edge_tts_voice)
tts_service.text_to_speech(text, tts_output, speed=speed)
# Step 2: Convert voice with Seed-VC