How to solve AttributeError: 'Audio' object has no attribute 'transcribe'?

41 views Asked by At

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

0

There are 0 answers