feat(voice): switch cloned voice speaker to Scarlett Johansson (Samantha Her)

This commit is contained in:
Admin 2026-09-04 15:43:29 +04:00
parent 8f5eebfae5
commit 438bca3ba9

View file

@ -129,20 +129,20 @@ async def text_to_speech_bytes(text: str) -> bytes:
if not speech_text: if not speech_text:
speech_text = "Приняла, Александр. Всё проанализировано и готово." speech_text = "Приняла, Александр. Всё проанализировано и готово."
# 1. Приоритет: локальный синтез голосом Айшварьи Рай на MacMini M4 (XTTS-v2 Apple Metal) # 1. Приоритет: локальный синтез голосом Скарлетт Йоханссон на MacMini M4 (XTTS-v2 Apple Metal)
try: try:
timeout = aiohttp.ClientTimeout(total=20) timeout = aiohttp.ClientTimeout(total=20)
async with aiohttp.ClientSession(timeout=timeout) as session: async with aiohttp.ClientSession(timeout=timeout) as session:
payload = { payload = {
"text": speech_text, "text": speech_text,
"language": "ru", "language": "ru",
"speaker_wav": "/Users/matrixhasyou/aishwarya_ref_15s.wav" "speaker_wav": "/Users/matrixhasyou/scarlett_ref_15s.wav"
} }
async with session.post("http://192.168.10.167:8050/tts", json=payload) as resp: async with session.post("http://192.168.10.167:8050/tts", json=payload) as resp:
if resp.status == 200: if resp.status == 200:
data = await resp.read() data = await resp.read()
if len(data) > 1000: if len(data) > 1000:
logger.info(f"🎤 Голос Айшварьи Рай (XTTS-v2 MacMini) успешно синтезирован ({len(data)} байт)") logger.info(f"🎤 Голос Скарлетт Йоханссон (XTTS-v2 MacMini) успешно синтезирован ({len(data)} байт)")
return data return data
logger.warning(f"XTTS вернул HTTP {resp.status}, переход на Edge TTS") logger.warning(f"XTTS вернул HTTP {resp.status}, переход на Edge TTS")
except Exception as e: except Exception as e: