I'm trying to make a voice chatbot using whisper, openai and gradio. My code is this below:
from dotenv import load_dotenv
import os
load_dotenv()
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
openai.api_key = OPENAI_API_KEY
from openai import OpenAI
client = OpenAI()
def voice_chat(user_voice):
messages = [
{"role": "system", "content": "Você é um tipo de assistente gentil e prestativo"},
]
user_message = model.transcribe(user_voice, fp16=False)["text"]
messages.append(
{"role": "user", "content": user_message},
)
print(messages)
chat = client.chat.completions.create(
model="gpt-3.5-turbo", messages=messages
)
reply = chat['choices'][0]['message']['content']
messages.append({"role": "assistant", "content": reply})
gTTS(text=reply, lang='pt', slow=False).save("output.wav")
return(reply, 'output.wav')
text_reply = gr.Textbox(label="ChatGPT Text")
voice_reply = gr.Audio('output.wav')
gr.Interface(
title = 'AI Voice Assistant with ChatGPT AI',
fn=voice_chat,
inputs=[
gr.Audio(sources='microphone', type="filepath")
],
outputs=[
text_reply, voice_reply
], live = True).launch(debug = True)
I try to submit my audio and then it gives an error, and what appears is this:
Traceback (most recent call last): File "c:\Users\samue\anaconda3\envs\cenv\lib\site-packages\gradio\queueing.py", line 489, in call_prediction
output = await route_utils.call_process_api( File "c:\Users\samue\anaconda3\envs\cenv\lib\site-packages\gradio\route_utils.py", line 232, in call_process_api
output = await app.get_blocks().process_api( File "c:\Users\samue\anaconda3\envs\cenv\lib\site-packages\gradio\blocks.py", line 1561, in process_api
result = await self.call_function( File "c:\Users\samue\anaconda3\envs\cenv\lib\site-packages\gradio\blocks.py", line 1179, in call_function
prediction = await anyio.to_thread.run_sync( File "c:\Users\samue\anaconda3\envs\cenv\lib\site-packages\anyio\to_thread.py", line 56, in run_sync
return await get_async_backend().run_sync_in_worker_thread( File "c:\Users\samue\anaconda3\envs\cenv\lib\site-packages\anyio\_backends\_asyncio.py", line 2134, in run_sync_in_worker_thread
return await future File "c:\Users\samue\anaconda3\envs\cenv\lib\site-packages\anyio\_backends\_asyncio.py", line 851, in run
result = context.run(func, *args) File "c:\Users\samue\anaconda3\envs\cenv\lib\site-packages\gradio\utils.py", line 678, in wrapper
response = f(*args, **kwargs) File "C:\Users\samue\AppData\Local\Temp\ipykernel_21308\376805405.py", line 7, in voice_chat
user_message = model.transcribe(user_voice, fp16=False)["text"] File "c:\Users\samue\anaconda3\envs\cenv\lib\site-packages\whisper\transcribe.py", line 122, in transcribe
mel = log_mel_spectrogram(audio, model.dims.n_mels, padding=N_SAMPLES) File "c:\Users\samue\anaconda3\envs\cenv\lib\site-packages\whisper\audio.py", line 140, in log_mel_spectrogram
audio = load_audio(audio) File "c:\Users\samue\anaconda3\envs\cenv\lib\site-packages\whisper\audio.py", line 58, in load_audio
out = run(cmd, capture_output=True, check=True).stdout File "c:\Users\samue\anaconda3\envs\cenv\lib\subprocess.py", line 505, in run
with Popen(*popenargs, **kwargs) as process: File "c:\Users\samue\anaconda3\envs\cenv\lib\subprocess.py", line 951, in
__init__
self._execute_child(args, executable, preexec_fn, close_fds, File "c:\Users\samue\anaconda3\envs\cenv\lib\subprocess.py", line 1436, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args, FileNotFoundError: [WinError 2] O sistema não pode encontrar o arquivo especificado
It is worth saying that: O sistema não pode encontrar o arquivo especificado is equivalent to The system cannot find the specified file
Help and solution, please.