2023-04-16 15:56:20 +05:00
|
|
|
|
import time
|
|
|
|
|
|
|
2023-04-16 16:59:18 +05:00
|
|
|
|
import sounddevice as sd
|
|
|
|
|
|
import torch
|
|
|
|
|
|
|
2023-04-16 15:56:20 +05:00
|
|
|
|
language = 'ru'
|
|
|
|
|
|
model_id = 'ru_v3'
|
2023-04-16 16:59:18 +05:00
|
|
|
|
sample_rate = 48000 # 48000
|
|
|
|
|
|
speaker = 'aidar' # aidar, baya, kseniya, xenia, random
|
2023-04-16 15:56:20 +05:00
|
|
|
|
put_accent = True
|
|
|
|
|
|
put_yo = True
|
2023-04-16 16:59:18 +05:00
|
|
|
|
device = torch.device('cpu') # cpu или gpu
|
2023-04-16 15:56:20 +05:00
|
|
|
|
text = "Хауди Хо, друзья!!!"
|
|
|
|
|
|
|
|
|
|
|
|
model, _ = torch.hub.load(repo_or_dir='snakers4/silero-models',
|
|
|
|
|
|
model='silero_tts',
|
|
|
|
|
|
language=language,
|
|
|
|
|
|
speaker=model_id)
|
|
|
|
|
|
model.to(device)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# воспроизводим
|
|
|
|
|
|
def va_speak(what: str):
|
2023-04-16 16:59:18 +05:00
|
|
|
|
audio = model.apply_tts(text=what + "..",
|
2023-04-16 15:56:20 +05:00
|
|
|
|
speaker=speaker,
|
|
|
|
|
|
sample_rate=sample_rate,
|
|
|
|
|
|
put_accent=put_accent,
|
|
|
|
|
|
put_yo=put_yo)
|
|
|
|
|
|
|
|
|
|
|
|
sd.play(audio, sample_rate * 1.05)
|
|
|
|
|
|
time.sleep((len(audio) / sample_rate) + 0.5)
|
|
|
|
|
|
sd.stop()
|
|
|
|
|
|
|
|
|
|
|
|
# sd.play(audio, sample_rate)
|
|
|
|
|
|
# time.sleep(len(audio) / sample_rate)
|
2023-04-16 16:59:18 +05:00
|
|
|
|
# sd.stop()
|