رونویسی صوتی

رابط برنامه‌نویسی نرم‌افزار Gemini، گفتار موجود در فایل‌های صوتی را با استفاده از مدل Gemini 3.5 Transcribe ( gemini-3.5-transcribe ) به متن تبدیل می‌کند. این رابط بر اساس قابلیت‌های درک صدای Gemini، رونویسی دقیقی را با شناسایی خودکار زبان، تشخیص گویشور، مهرهای زمانی در سطح کلمه و نکات واژگانی سفارشی ارائه می‌دهد. همچنین یک حالت رونویسی هوشمند با حذف ناروانی و قالب‌بندی هوشمند ارائه می‌دهد.

برای رونویسی یک فایل صوتی، فایل صوتی را آپلود کرده و آن را به gemini-3.5-transcribe ارسال کنید:

پایتون

from google import genai

client = genai.Client()

audio_file = client.files.upload(file="path/to/sample.mp3")

interaction = client.interactions.create(
    model="gemini-3.5-transcribe",
    input=[
        {
            "type": "audio",
            "uri": audio_file.uri,
            "mime_type": audio_file.mime_type,
        }
    ],
)

print(interaction.output_text)

جاوا اسکریپت

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({});

const audioFile = await client.files.upload({
  file: "path/to/sample.mp3",
  config: { mime_type: "audio/mp3" },
});

const interaction = await client.interactions.create({
  model: "gemini-3.5-transcribe",
  input: [
    {
      type: "audio",
      uri: audioFile.uri,
      mime_type: audioFile.mimeType,
    },
  ],
});

console.log(interaction.output_text);

استراحت

# First upload the file via the Files API, then pass its URI:
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.5-transcribe",
    "input": [
      {
        "type": "audio",
        "uri": "YOUR_FILE_URI",
        "mime_type": "audio/mp3"
      }
    ]
  }'

نمای کلی

نرم‌افزار Gemini 3.5 Transcribe برای وظایف تبدیل گفتار به متن بهینه شده است. این نرم‌افزار لهجه‌های مختلف، نویز پس‌زمینه و مکالمات چندزبانه را پشتیبانی می‌کند.

قابلیت‌های کلیدی عبارتند از:

  • تشخیص خودکار گفتار (ASR): به طور خودکار زبان‌ها را در بیش از ۸۵ زبان تشخیص می‌دهد. تغییر کد درون جمله‌ای و بین جمله‌ای را بدون پیکربندی دستی انجام می‌دهد.
  • واژگان سفارشی: با ارائه حداکثر ۱۰۰۰ عبارت، تشخیص را به سمت اصطلاحات خاص حوزه، کلمات اختصاری و نام‌های خاص متمایل می‌کند.
  • تفکیک گوینده: بین چندین گوینده تمایز قائل می‌شود و بخش‌های گفتاری را به برچسب‌های متمایز نسبت می‌دهد.
  • مهرهای زمانی در سطح کلمه: برای هر کلمه شناخته شده، انحرافات زمانی شروع و پایان دقیقی ایجاد می‌کند.
  • رونویسی هوشمند: ناروانی‌ها، کلمات پرکننده، تکرارها را اصلاح می‌کند و قالب‌بندی ساختاریافته‌ای را اعمال می‌کند.
  • قالب‌بندی و نرمال‌سازی: حروف بزرگ، علائم نگارشی و نرمال‌سازی معکوس متن را اعمال می‌کند، مانند تبدیل «بیست و شش میلیون دلار» به «۲۶ میلیون دلار».

برای استدلال صوتی عمومی یا پاسخ به سوالات از طریق محتوای صوتی، از درک صوتی استفاده کنید. برای تبدیل متن به گفتار، از متن به گفتار استفاده کنید.

تشخیص زبان و نکات

به طور پیش‌فرض، مدل زبان گفتاری را به طور خودکار تشخیص می‌دهد. وقتی گوینده‌ها کدشان را عوض می‌کنند، به صورت پویا بین زبان‌ها جابجا می‌شود.

برای استفاده از تشخیص خودکار، language_codes حذف کنید یا یک لیست خالی ارائه دهید:

پایتون

interaction = client.interactions.create(
    model="gemini-3.5-transcribe",
    input=[
        {
            "type": "audio",
            "uri": audio_file.uri,
            "mime_type": audio_file.mime_type,
        }
    ],
    generation_config={
        "transcription_config": {
            "language_codes": [],
        }
    },
)

جاوا اسکریپت

const interaction = await client.interactions.create({
  model: "gemini-3.5-transcribe",
  input: [
    {
      type: "audio",
      uri: audioFile.uri,
      mime_type: audioFile.mimeType,
    },
  ],
  generation_config: {
    transcription_config: {
      language_codes: [],
    },
  },
});

استراحت

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.5-transcribe",
    "input": [
      {
        "type": "audio",
        "uri": "YOUR_FILE_URI",
        "mime_type": "audio/mp3"
      }
    ],
    "generation_config": {
      "transcription_config": {
        "language_codes": []
      }
    }
  }'

اگر زبان را از قبل می‌دانید، کدهای زبان BCP-47 را در language_codes مشخص کنید تا دقت رونویسی بهبود یابد (به زبان‌های پشتیبانی‌شده مراجعه کنید):

پایتون

generation_config = {
    "transcription_config": {
        "language_codes": ["es-ES"],
    }
}

جاوا اسکریپت

const generationConfig = {
  transcription_config: {
    language_codes: ["es-ES"],
  },
};

استراحت

{
  "generation_config": {
    "transcription_config": {
      "language_codes": ["es-ES"]
    }
  }
}

واژگان سفارشی

شما می‌توانید مدل گفتار را به سمت کلمات غیرمعمول، اصطلاحات فنی، نام‌های تجاری یا اسم‌های خاص هدایت کنید. حداکثر ۱۰۰۰ اصطلاح را در آرایه custom_vocabulary وارد کنید (بهترین نتایج معمولاً با حداکثر ۱۰۰ اصطلاح حاصل می‌شود):

پایتون

interaction = client.interactions.create(
    model="gemini-3.5-transcribe",
    input=[
        {
            "type": "audio",
            "uri": audio_file.uri,
            "mime_type": audio_file.mime_type,
        }
    ],
    generation_config={
        "transcription_config": {
            "custom_vocabulary": ["Gemini", "Kubernetes", "BigQuery"],
        }
    },
)

جاوا اسکریپت

const interaction = await client.interactions.create({
  model: "gemini-3.5-transcribe",
  input: [
    {
      type: "audio",
      uri: audioFile.uri,
      mime_type: audioFile.mimeType,
    },
  ],
  generation_config: {
    transcription_config: {
      custom_vocabulary: ["Gemini", "Kubernetes", "BigQuery"],
    },
  },
});

استراحت

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.5-transcribe",
    "input": [
      {
        "type": "audio",
        "uri": "YOUR_FILE_URI",
        "mime_type": "audio/mp3"
      }
    ],
    "generation_config": {
      "transcription_config": {
        "custom_vocabulary": ["Gemini", "Kubernetes", "BigQuery"]
      }
    }
  }'

دفتر خاطرات گوینده

قابلیت diarization گوینده، صداهای مختلف موجود در فایل ضبط شده را شناسایی کرده و هر بخش را با یک شناسه گوینده مانند spk_1 یا spk_2 برچسب‌گذاری می‌کند. حداکثر ۸ گوینده پشتیبانی می‌شوند (قابلیت انتساب ۳ گوینده یا بیشتر آزمایشی است).

با پیکربندی diarization_mode در mode diarization را فعال کنید:

پایتون

interaction = client.interactions.create(
    model="gemini-3.5-transcribe",
    input=[
        {
            "type": "audio",
            "uri": audio_file.uri,
            "mime_type": audio_file.mime_type,
        }
    ],
    generation_config={
        "transcription_config": {
            "mode": {
                "type": "verbatim",
                "diarization_mode": "speaker",
            },
        }
    },
)

جاوا اسکریپت

const interaction = await client.interactions.create({
  model: "gemini-3.5-transcribe",
  input: [
    {
      type: "audio",
      uri: audioFile.uri,
      mime_type: audioFile.mimeType,
    },
  ],
  generation_config: {
    transcription_config: {
      mode: {
        type: "verbatim",
        diarization_mode: "speaker",
      },
    },
  },
});

استراحت

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.5-transcribe",
    "input": [
      {
        "type": "audio",
        "uri": "YOUR_FILE_URI",
        "mime_type": "audio/mp3"
      }
    ],
    "generation_config": {
      "transcription_config": {
        "mode": {
          "type": "verbatim",
          "diarization_mode": "speaker"
        }
      }
    }
  }'

مهرهای زمانی در سطح کلمه

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

با پیکربندی timestamp_granularities در mode مهرهای زمانی را فعال کنید:

پایتون

interaction = client.interactions.create(
    model="gemini-3.5-transcribe",
    input=[
        {
            "type": "audio",
            "uri": audio_file.uri,
            "mime_type": audio_file.mime_type,
        }
    ],
    generation_config={
        "transcription_config": {
            "mode": {
                "type": "verbatim",
                "timestamp_granularities": ["word"],
            },
        }
    },