API AvalAI قابلیت‌های قدرتمندی برای پردازش فایل‌های صوتی با استفاده از مدل‌های زبانی پیشرفته ارائه می‌دهد. این راهنما نشان می‌دهد چگونه می‌توانید از مدل‌های Gemini از طریق API AvalAI سازگار با OpenAI برای رونویسی، تحلیل و استخراج اطلاعات از فایل‌های صوتی استفاده کنید. این قابلیت‌ها به برنامه‌ها امکان می‌دهد تا محتوای گفتاری را درک کنند، که آنها را برای خدمات رونویسی، تحلیل محتوا و جریان‌های کاری خودکار پردازش صوتی ایده‌آل می‌سازد. این مقاله برداشتی از صفحه مستندات پلتفرم هوش مصنوعی AvalAI است.

ویژگی‌های کلیدی

  • رونویسی صوتی – تبدیل محتوای گفتاری به متن دقیق
  • تحلیل محتوا – شناسایی موضوعات، احساسات و اطلاعات کلیدی از صوت
  • پشتیبانی چند زبانه – پردازش صوت به چندین زبان
  • پاسخ به سؤالات – پرسیدن سؤالات درباره محتوای صوتی و دریافت پاسخ‌های دقیق
  • دسترسی یکپارچه به API – دسترسی به چندین ارائه‌دهنده مدل از طریق یک رابط سازگار با OpenAI

مدل‌های موجود

مدل‌های Gemini زیر از پردازش صوتی از طریق API AvalAI پشتیبانی می‌کنند:

  • gemini-2.5-flash-preview-04-17 – بهینه‌سازی شده برای تفکر انطباقی و کارایی هزینه
  • gemini-2.5-pro-preview-05-06 – تفکر و استدلال پیشرفته، درک چندوجهی، کدنویسی پیشرفته
  • gemini-2.0-flash – ویژگی‌های نسل بعدی با بهینه‌سازی سرعت
  • gemini-2.0-flash-lite – کارایی هزینه و تأخیر کم
  • gemini-1.5-flash – عملکرد سریع و همه‌کاره در انواع وظایف متنوع
  • gemini-1.5-flash-8b – وظایف با حجم بالا و هوش کمتر
  • gemini-1.5-pro – وظایف استدلالی پیچیده که نیاز به هوش بیشتری دارند

این مدل‌ها از انواع MIME فرمت‌های صوتی زیر پشتیبانی می‌کنند:

  • WAV – audio/wav
  • MP3 – audio/mp3
  • AIFF – audio/aiff
  • AAC – audio/aac
  • OGG Vorbis – audio/ogg
  • FLAC – audio/flac

استفاده پایه

پردازش صوتی با API AvalAI از روش کدگذاری base64 استفاده می‌کند، که در آن فایل صوتی را مستقیماً به صورت داده کدگذاری شده ارسال می‌کنید:

مثال پایتون (Python)

from openai import OpenAI
import base64

# مقداردهی اولیه کلاینت با API AvalAI
client = OpenAI(api_key="your-avalai-api-key", base_url="https://api.avalai.ir/v1")

# روش 1: از یک URL
import requests

audio_url = "https://example.com/path/to/audio.mp3"
response = requests.get(audio_url)
file_data = response.content

# روش 2: از یک فایل محلی
# with open("path/to/your/audio.mp3", "rb") as f:
# file_data = f.read()

# کدگذاری داده صوتی به base64
encoded_file = base64.b64encode(file_data).decode("utf-8")
base64_url = f"data:audio/mp3;base64,{encoded_file}"

# ایجاد درخواست با فایل کدگذاری شده با base64
file_content = [
    {"type": "text", "text": "این فایل صوتی درمورد چیست؟"},
    {
        "type": "file",
        "file": {
            "file_data": base64_url,
        },
    },
]

# ارسال درخواست به مدل
response = client.chat.completions.create(
    model="gemini-2.0-flash",
    messages=[{"role": "user", "content": file_content}],
)

print(response.choices[0].message.content)

مثال جاواسکریپت (Javascript)

import { OpenAI } from "openai";
import axios from "axios";
import fs from "fs";

// مقداردهی اولیه کلاینت با API AvalAI
const client = new OpenAI({
  apiKey: process.env.AVALAI_API_KEY,
  baseURL: "https://api.avalai.ir/v1",
});

// تابع دریافت فایل صوتی کدگذاری شده با base64
async function getBase64Audio() {
  // روش 1: از یک URL
  const audioUrl = "https://example.com/path/to/audio.mp3";
  const response = await axios.get(audioUrl, { responseType: "arraybuffer" });
  const buffer = Buffer.from(response.data);

  // روش 2: از یک فایل محلی
  // const buffer = fs.readFileSync("path/to/your/audio.mp3");

  return `data:audio/mp3;base64,${buffer.toString("base64")}`;
}

// تابع اصلی
async function processAudio() {
  const base64Audio = await getBase64Audio();

  // ایجاد درخواست با فایل کدگذاری شده با base64
  const fileContent = [
    { type: "text", text: "این فایل صوتی درمورد چیست؟" },
    {
      type: "file",
      file: {
        file_data: base64Audio,
      },
    },
  ];

  // ارسال درخواست به مدل
  const response = await client.chat.completions.create({
    model: "gemini-2.0-flash",
    messages: [{ role: "user", content: fileContent }],
  });

  console.log(response.choices[0].message.content);
}

processAudio();

مشخص کردن فرمت

می‌توانید فرمت فایل صوتی را به صورت صریح مشخص کنید تا از پردازش صحیح اطمینان حاصل شود:

مثال پایتون (Python)

from openai import OpenAI
import base64

# مقداردهی اولیه کلاینت با API AvalAI
client = OpenAI(api_key="your-avalai-api-key", base_url="https://api.avalai.ir/v1")

# دریافت داده صوتی (از URL یا فایل محلی)
# ... (مانند مثال قبلی)

# کدگذاری داده صوتی به base64
encoded_file = base64.b64encode(file_data).decode("utf-8")
base64_url = f"data:audio/mp3;base64,{encoded_file}"

# ایجاد درخواست با مشخص کردن فرمت
file_content = [
    {"type": "text", "text": "این فایل صوتی درمورد چیست؟"},
    {"type": "file", "file": {"file_data": base64_url, "format": "audio/mp3"}},
]

# ارسال درخواست به مدل
response = client.chat.completions.create(
    model="gemini-2.0-flash",
    messages=[{"role": "user", "content": file_content}],
)

print(response.choices[0].message.content)

مثال جاواسکریپت (Javascript)

import { OpenAI } from "openai";

// مقداردهی اولیه کلاینت با API AvalAI
const client = new OpenAI({
  apiKey: process.env.AVALAI_API_KEY,
  baseURL: "https://api.avalai.ir/v1",
});

// دریافت فایل صوتی کدگذاری شده با base64
// ... (مانند مثال قبلی)

// ایجاد درخواست با مشخص کردن فرمت
const fileContent = [
  { type: "text", text: "این فایل صوتی درمورد چیست؟" },
  {
    type: "file",
    file: {
      file_data: base64Audio,
      format: "audio/mp3",
    },
  },
];

// ارسال درخواست به مدل
const response = await client.chat.completions.create({
  model: "gemini-2.0-flash",
  messages: [{ role: "user", content: fileContent }],
});

console.log(response.choices[0].message.content);

محدودیت‌های خاص مدل‌ها

مدل‌های Gemini

  • حداکثر حجم فایل: ۱۰ مگابایت برای فایل‌های صوتی
  • حداکثر مدت زمان: تا ۱۲۰ دقیقه صوت
  • الزامات فرمت: فرمت‌های صوتی استاندارد (WAV، MP3، AIFF، AAC، OGG، FLAC)
  • مصرف توکن: بسته به طول و پیچیدگی صوت متغیر است
  • پشتیبانی زبان: چندین زبان با سطوح مختلف دقت پشتیبانی می‌شوند
  • بهترین کاربرد برای: رونویسی، تحلیل محتوا و درک اطلاعات گفتاری

موارد استفاده

رونویسی صوتی

مثال پایتون (Python)

from openai import OpenAI
import base64

client = OpenAI(api_key="your-avalai-api-key", base_url="https://api.avalai.ir/v1")

# دریافت داده صوتی (از URL یا فایل محلی)
# ... (مانند مثال‌های قبلی)

file_content = [
    {"type": "text", "text": "این فایل صوتی را به دقت رونویسی کن."},
    {
        "type": "file",
        "file": {
            "file_data": base64_url,
        },
    },
]

response = client.chat.completions.create(
    model="gemini-2.0-flash",
    messages=[{"role": "user", "content": file_content}],
)

print(response.choices[0].message.content)

مثال جاواسکریپت (Javascript)

import { OpenAI } from "openai";

const client = new OpenAI({
  apiKey: process.env.AVALAI_API_KEY,
  baseURL: "https://api.avalai.ir/v1",
});

// دریافت فایل صوتی کدگذاری شده با base64
// ... (مانند مثال‌های قبلی)

const fileContent = [
  { type: "text", text: "این فایل صوتی را به دقت رونویسی کن." },
  {
    type: "file",
    file: {
      file_data: base64Audio,
    },
  },
];

const response = await client.chat.completions.create({
  model: "gemini-2.0-flash",
  messages: [{ role: "user", content: fileContent }],
});

console.log(response.choices[0].message.content);

 

تحلیل محتوای صوتی

مثال پایتون (Python)

from openai import OpenAI
import base64

client = OpenAI(api_key="your-avalai-api-key", base_url="https://api.avalai.ir/v1")

# دریافت داده صوتی (از URL یا فایل محلی)
# ... (مانند مثال‌های قبلی)

file_content = [
    {
        "type": "text",
        "text": "این فایل صوتی را تحلیل کن و موضوعات اصلی مورد بحث، لحن گوینده و نکات کلیدی ذکر شده را به من بگو.",
    },
    {
        "type": "file",
        "file": {
            "file_data": base64_url,
        },
    },
]

response = client.chat.completions.create(
    model="gemini-2.0-flash",
    messages=[{"role": "user", "content": file_content}],
)

print(response.choices[0].message.content)

مثال جاواسکریپت (Javascript)

import { OpenAI } from "openai";

const client = new OpenAI({
  apiKey: process.env.AVALAI_API_KEY,
  baseURL: "https://api.avalai.ir/v1",
});

// دریافت فایل صوتی کدگذاری شده با base64
// ... (مانند مثال‌های قبلی)

const fileContent = [
  {
    type: "text",
    text: "این فایل صوتی را تحلیل کن و موضوعات اصلی مورد بحث، لحن گوینده و نکات کلیدی ذکر شده را به من بگو.",
  },
  {
    type: "file",
    file: {
      file_data: base64Audio,
    },
  },
];

const response = await client.chat.completions.create({
  model: "gemini-2.0-flash",
  messages: [{ role: "user", content: fileContent }],
});

console.log(response.choices[0].message.content);

مشکلات رایج و عیب‌یابی

مدیریت فایل‌های صوتی بزرگ

  • تقسیم به قطعات: برای فایل‌های صوتی بزرگتر از ۱۰ مگابایت، آنها را به قطعات کوچکتر تقسیم کنید
  • کاهش کیفیت صوتی: نرخ بیت را کاهش دهید در حالی که قابلیت فهم را حفظ کنید
  • تبدیل به فرمت‌های کارآمدتر: به فرمت‌هایی با فشرده‌سازی بهتر مانند MP3 یا AAC تبدیل کنید

مدیریت صدای با کیفیت پایین

  • کاهش نویز: قبل از پردازش، نویز را کاهش دهید
  • بهبود وضوح: از ابزارهای بهبود صدا برای افزایش وضوح گفتار استفاده کنید
  • ارائه زمینه: زمینه اضافی در درخواست خود قرار دهید تا به مدل در درک کمک کند

توصیه‌های تبدیل فرمت

  • استفاده از فرمت‌های استاندارد: از فرمت‌های پشتیبانی شده گسترده مانند MP3 یا WAV استفاده کنید
  • اطمینان از کدگذاری صحیح: قبل از تبدیل، از کدگذاری صحیح صوتی خود اطمینان حاصل کنید
  • حفظ کیفیت کافی: بین حجم فایل و کیفیت تعادل ایجاد کنید تا پردازش دقیق تضمین شود

بهینه‌سازی عملکرد

نکاتی برای بهینه‌سازی فایل‌های صوتی

  • نرخ نمونه‌برداری مناسب: از ۱۶ کیلوهرتز برای صدای گفتاری استفاده کنید (برای اکثر تشخیص گفتار کافی است)
  • مونو در مقابل استریو: برای محتوای گفتاری از مونو استفاده کنید تا حجم فایل کاهش یابد
  • بهینه‌سازی نرخ بیت: ۶۴-۱۲۸ کیلوبیت در ثانیه اغلب برای محتوای گفتاری کافی است

توصیه‌های پردازش دسته‌ای

  • پیاده‌سازی صف: برای پردازش چندین فایل، یک سیستم صف پیاده‌سازی کنید
  • پردازش موازی: چندین فایل صوتی کوتاه را به صورت موازی پردازش کنید
  • پیگیری پیشرفت: برای فرآیندهای دسته‌ای طولانی مدت، پیگیری پیاده‌سازی کنید

بهترین شیوه‌ها

  • کیفیت صوتی: اطمینان حاصل کنید که صدا واضح و با حداقل نویز پس‌زمینه باشد
  • اختصاصی بودن درخواست: در درخواست‌های خود درباره آنچه از صوت می‌خواهید مشخص باشید
  • ارائه زمینه: در صورت امکان، زمینه‌ای درباره محتوای صوتی ارائه دهید
  • تقسیم صوتی طولانی: ضبط‌های طولانی را به قطعات منطقی تقسیم کنید
  • ملاحظات امنیتی: به اطلاعات حساس در فایل‌های صوتی توجه داشته باشید

برگرفته از صفحه مستندات پلتفرم هوش مصنوعی AvalAI