Если не в даваться в подробности, то всё очень даже неплохо. Но я поправил несколько моментов, если бы делал для себя)
import speech_recognition as sr
from elevenlabs.client import ElevenLabs
import pyaudio
r = sr.Recognizer()
client = ElevenLabs(
api_key="тут апи"
)
p = pyaudio.PyAudio()
def listen():
with sr.Microphone() as source:
print('я вас слушаю сэр')
r.adjust_for_ambient_noise(source)
audio = r.listen(source)
try:
text = r.recognize_google(audio, language='ru-RU').lower()
print(f'Вы сказали: {text}')
return text
except sr.UnknownValueError:
print("Не удалось распознать речь")
return None
def play_audio_stream(stream):
for audio_chunk in stream:
stream = p.open(format=p.get_format_from_width(2),
channels=1,
rate=24000,
output=True)
stream.write(audio_chunk)
stream.stop_stream()
stream.close()
def text_stream(text):
if 'джарвис' in text:
text = "Привет, я Eleven, текст в речь API."
audio_stream = client.generate(
text=text,
voice="Nicole",
model="eleven_monolingual_v1",
stream=True
)
play_audio_stream(audio_stream)
text = listen()
if text:
text_stream(text)
Я добавил библиотеку pyaudio для воспроизведения аудио.
Теперь функция listen возвращает None, если речь не распознана.
Функция play_audio_stream создаёт и управляет аудио потоком для воспроизведения ??
Chudo_ChudnoeМастер (2054)
1 месяц назад
Ошибка:
Local variable 'query' value is not used :40
Local variable 'query' value is not used :19
Parameter 'query' value is not used :38
получается, если переменная объявлена, но не используется в коде.
Если переменная query не нужна, её можно убрать.
Проблемы с воспроизведением могут быть по разным причинам. Плохой микрофон или неправильные параметры обработки аудио.
Ещё play(audio), она вызывается, но не определена.
Попробуй этот:
следующий комментарий