Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка голосовой помощник Python

Luke Art Ученик (38), открыт 2 недели назад
хотел сделать голосового помощника на пайтон с использованием ElevenLabs для клонирования голоса и аудио файла код:

 import speech_recognition as sr 
from elevenlabs.client import ElevenLabs
import pyaudio
from elevenlabs import play


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 text_stream(text):
if 'джарвис' in text:
voice = client.clone(
name="Alex",
description="An old American male voice with a slight hoarseness in his throat. Perfect for news",
# Optional
files=["music.mp3"],
)

audio = client.generate(text='ВЫ вернулись сэр!', voice=voice)

play(audio)


text = listen()
if text:
text_stream(text)

ошибка:
 Traceback (most recent call last): 
File "C:\Users\timek\PycharmProjects\pythonProject1\main.py", line 45, in
text_stream(text)
File "C:\Users\timek\PycharmProjects\pythonProject1\main.py", line 31, in text_stream
voice = client.clone(
^^^^^^^^^^^^^
File "C:\Users\timek\PycharmProjects\pythonProject1\.venv\Lib\site-packages\elevenlabs\client.py", line 107, in clone
add_voice_response = self.voices.add(
^^^^^^^^^^^^^^^^
File "C:\Users\timek\PycharmProjects\pythonProject1\.venv\Lib\site-packages\elevenlabs\voices\client.py", line 420, in add
raise ApiError(status_code=_response.status_code, body=_response_json)
elevenlabs.core.api_error.ApiError: status_code: 400, body: {'detail': {'status': 'can_not_use_instant_voice_cloning', 'message': 'Your subscription has no access to use instant voice cloning, please upgrade.'}}
1 ответ
dmilor Мастер (2408) 2 недели назад
Ошибка, с которой вы столкнулись, указывает на то, что ваша подписка на сервис ElevenLabs не включает доступ к функции мгновенного клонирования голоса. Сообщение об ошибке гласит: "Your subscription has no access to use instant voice cloning, please upgrade." Это означает, что для использования этой функции вам необходимо обновить вашу подписку.

Чтобы решить эту проблему, вы можете:

1. **Обновить подписку** на ElevenLabs до уровня, который включает доступ к мгновенному клонированию голоса. Это можно сделать через ваш аккаунт на сайте ElevenLabs.

2. **Использовать другие методы синтеза голоса**, если обновление подписки не входит в ваши планы. Например, вы можете использовать библиотеку `pyttsx3` для синтеза голоса, который работает локально и не требует подключения к интернету или подписки.

Если вы решите использовать `pyttsx3`, ваш код для воспроизведения текста может выглядеть так:

```python
import pyttsx3

def speak(text):
engine = pyttsx3.init()
engine.say(text)
engine.runAndWait()

text = listen()
if text:
if 'джарвис' in text:
speak('ВЫ вернулись сэр!')
```

Этот код инициализирует движок TTS (text-to-speech), передает ему текст и воспроизводит его. Это может быть альтернативой использованию ElevenLabs, если доступ к расширенным функциям не возможен.
Похожие вопросы