This commit is contained in:
2024-01-09 22:10:13 +07:00
commit a889c68e40
23 changed files with 2101 additions and 0 deletions
+9
View File
@@ -0,0 +1,9 @@
def execute_cmd(self, cmd: str):
if cmd == 'thanks':
self.play("thanks")
elif cmd == 'stupid':
self.play("stupid")
elif cmd == 'off':
self.play("off", True)
self.porcupine.delete()
exit(0)
+23
View File
@@ -0,0 +1,23 @@
import random
import simpleaudio as sa
def play(self, phrase, wait_done=True):
filename = None
file_array = ["not_found", "thanks", "run", "stupid", "ready", "off"]
if phrase == "greet":
filename = f"greet{random.choice([1, 2, 3])}.wav"
elif phrase == "ok":
filename = f"ok{random.choice([1, 2, 3])}.wav"
elif phrase in file_array:
filename = f"{phrase}.wav"
if wait_done:
self.recorder.stop()
if filename:
wave_obj = sa.WaveObject.from_wave_file(f"{self.CDIR}/sound/{filename}")
play_obj = wave_obj.play()
if wait_done:
play_obj.wait_done()
self.recorder.start()
else:
print("tts")
Executable
+31
View File
@@ -0,0 +1,31 @@
import time
import sounddevice as sd
import torch
language = 'ru'
model_id = 'ru_v3'
sample_rate = 48000 # 48000
speaker = 'aidar' # aidar, baya, kseniya, xenia, random
put_accent = True
put_yo = True
device = torch.device('cpu') # cpu или gpu
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):
audio = model.apply_tts(text=what + "..",
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()