starting
This commit is contained in:
@@ -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)
|
||||
@@ -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
@@ -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()
|
||||
Reference in New Issue
Block a user