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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user