File size: 2,315 Bytes
42f60cd 3553314 42f60cd 3553314 42f60cd | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | import base64
import requests
import gradio as gr
from openai import OpenAI
import os
OpenAI1 = os.getenv("OpenAI")
# کلید API خود را به جای 'your-api-key' وارد کنید
client = OpenAI(api_key=OpenAI1)
import base64
import requests
import gradio as gr
from openai import OpenAI
def process_voice_input(input_audio):
# بررسی اینکه آیا فایل صوتی به درستی به تابع ارسال شده است
if input_audio is None or not os.path.exists(input_audio):
return "No audio file received or the file path is invalid."
# خواندن فایل صوتی و تبدیل آن به base64
with open(input_audio, "rb") as audio_file:
wav_data = audio_file.read()
encoded_string = base64.b64encode(wav_data).decode('utf-8')
# ارسال فایل صوتی به مدل GPT-4 همراه با پیام متنی
completion = client.chat.completions.create(
model="gpt-4o-audio-preview",
modalities=["text", "audio"],
audio={"voice": "alloy", "format": "wav"},
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this recording?"
},
{
"type": "input_audio",
"input_audio": {
"data": encoded_string,
"format": "wav"
}
}
]
}
]
)
# تبدیل پاسخ مدل به فایل صوتی
wav_bytes = base64.b64decode(completion.choices[0].message.audio.data)
output_audio_path = "response.wav"
with open(output_audio_path, "wb") as f:
f.write(wav_bytes)
# برگرداندن فایل صوتی خروجی
return output_audio_path
# ساخت رابط کاربری با Gradio
iface = gr.Interface(
fn=process_voice_input,
inputs=gr.Audio(type="filepath"), # حذف "source" که خطا ایجاد میکرد
outputs=gr.Audio(type="filepath"),
title="Voice Chat with GPT-4",
description="Record a voice message and get a voice response."
)
# اجرای رابط کاربری
iface.launch()
|