Hello i am trying to do a voicebot. I wrote following code;
app.py
from dotenv import load_dotenv
import os
load_dotenv()
from interface import AudioInterface
interface=AudioInterface()
text=interface.listen()
print(text)
interface.speak(text)
interface.py
import speech_recognition as sr
import os
import os
from elevenlabs import generate, play, set_api_key
set_api_key(os.environ['ELEVEN_API_KEY'])
class AudioInterface:
def listen(self)->str:
recognizer=sr.Recognizer()
with sr.Microphone() as source:
print("say something")
audio=recognizer.listen(source)
text=recognizer.recognize_whisper_api(
audio,
api_key=os.environ["OPENAI_API_KEY"]
)
return text
def speak(self, text):
audio=generate(
text=text,
voice='Bella',
model='eleven_monolingual_v1'
)
play(audio)
Actually there is no need to import elevenlabs to get this error, you can delete that part from the code.
error on ; text=interface.listen()
(venv) sk@Sevval-MacBook-Air voice_assistant % python src/app.py
say something
Traceback (most recent call last):
File "/Users/sk/Dev/search-gpt/voice_assistant/src/app.py", line 10, in <module>
text=interface.listen()
^^^^^^^^^^^^^^^^^^
File "/Users/sk/Dev/search-gpt/voice_assistant/src/interface.py", line 15, in listen
text=recognizer.recognize_whisper_api(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sk/Dev/search-gpt/voice_assistant/venv/lib/python3.12/site-packages/speech_recognition/recognizers/whisper.py", line 43, in recognize_whisper_api
transcript = client.audio.transcribe(model, wav_data, api_key=api_key)
^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'Audio' object has no attribute 'transcribe'
openai Version: 1.14.1