@ganstar565

Почему код перестаёт работать?

Ниже представлен код взятый в основном из документации, установил все необходимое.
Смысл кода в том, чтобы озвучить строку переменной
text

но создание переменной
audio
ломает код и не вызывает никакой ошибки,
print(text)
- последний срабатывающий принт.

с помощью
sd.query_devices()
проверил, что на выводе нужный динамик. Кто знает в чем может быть проблема, поделитесь пожалуйста, заранее спасибо.

import time
import sounddevice as sd
import torch
print(sd.query_devices())
print(sd.default.device)
language = 'ru'
model_id = 'ru_v3'
sample_rate = 48000  
speaker = 'aidar'  # aidar, baya, kseniya, xenia, random
put_accent = True
put_yo = True
device = torch.device('cpu')  
text = "привет мир"
print("1")
model, _ = torch.hub.load(repo_or_dir='snakers4/silero-models',
                          model='silero_tts',
                          language=language,
                          speaker=model_id)
print("2")
model.to(device)
print("3")


print(text)

audio = model.apply_tts(text=text ,
                        speaker=speaker,
                        sample_rate=sample_rate,
                        put_accent=put_accent,
                        put_yo=put_yo)


print("4")
sd.play(audio, sample_rate )
sd.stop()
  • Вопрос задан
  • 157 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Umys
Кажется, код содержит ошибку, связанную с неправильной передачей аргументов функции `apply_tts` для модели Silero. Проверьте соответствующие имена аргументов и обновите их. Ваш исправленный код должен выглядеть так:

import time
import sounddevice as sd
import torch
print(sd.query_devices())
print(sd.default.device)
language = 'ru'
model_id = 'ru_v3'
sample_rate = 48000
speaker = 'aidar' # aidar, baya, kseniya, xenia, random
put_accent = True
put_yo = True
device = torch.device('cpu')
text = "привет мир"
print("1")
model, _ = torch.hub.load(repo_or_dir='snakers4/silero-models',
model='silero_tts',
language=language,
speaker=model_id)
print("2")
model.to(device)
print("3")

print(text)

audio = model(text=text,
speaker=speaker,
sample_rate=sample_rate,
put_accent=put_accent,
put_yo=put_yo)

print("4")
sd.play(audio, sample_rate)
sd.wait()
```
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
28 нояб. 2024, в 18:46
3000 руб./за проект
28 нояб. 2024, в 17:46
10000 руб./за проект
28 нояб. 2024, в 17:38
12000 руб./за проект