Gemini API chuyển đổi lời nói trong tệp âm thanh thành văn bản bằng mô hình Gemini 3.5 Transcribe (gemini-3.5-transcribe). Dựa trên khả năng hiểu âm thanh của Gemini, API này cung cấp bản chép lời chính xác với tính năng tự động nhận dạng ngôn ngữ, phân biệt người nói, dấu thời gian ở cấp từ và gợi ý từ vựng tuỳ chỉnh. Ứng dụng này cũng cung cấp chế độ chuyển lời nói thành văn bản thông minh, có tính năng loại bỏ lỗi diễn đạt và định dạng thông minh.
Để chép lời một tệp âm thanh, hãy tải tệp âm thanh đó lên và truyền đến gemini-3.5-transcribe:
Python
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)
JavaScript
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);
REST
# 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"
}
]
}'
Tổng quan
Gemini 3.5 Transcribe được tối ưu hoá cho các nhiệm vụ chuyển lời nói thành văn bản. Tính năng này có thể xử lý nhiều giọng nói, tạp âm và cuộc trò chuyện bằng nhiều ngôn ngữ.
Các chức năng chính bao gồm:
- Nhận dạng lời nói tự động (ASR): Tự động phát hiện ngôn ngữ ở hơn 85 địa điểm. Xử lý việc chuyển đổi ngôn ngữ trong câu và giữa các câu mà không cần định cấu hình theo cách thủ công.
- Từ vựng tuỳ chỉnh: Hỗ trợ nhận dạng các thuật ngữ, từ viết tắt và tên riêng theo từng miền bằng cách truyền tối đa 1.000 cụm từ.
- Phân biệt người nói: Phân biệt nhiều người nói và gán các đoạn lời nói cho các nhãn riêng biệt.
- Dấu thời gian ở cấp từ: Tạo độ lệch chính xác về thời gian bắt đầu và thời gian kết thúc cho từng từ được nhận dạng.
- Bản chép lời thông minh: Loại bỏ các lỗi diễn đạt, từ đệm, từ lặp và áp dụng định dạng có cấu trúc.
- Định dạng và chuẩn hoá: Áp dụng cách viết hoa, dấu câu và chuẩn hoá văn bản nghịch đảo, chẳng hạn như chuyển đổi "hai mươi sáu triệu đô la" thành "26 triệu USD".
Để đưa ra suy luận chung về âm thanh hoặc trả lời câu hỏi về nội dung âm thanh, hãy sử dụng Tính năng hiểu âm thanh. Để tổng hợp âm thanh bằng tính năng chuyển văn bản sang lời nói, hãy sử dụng Chuyển văn bản sang lời nói.
Phát hiện ngôn ngữ và gợi ý
Theo mặc định, mô hình này sẽ tự động phát hiện ngôn ngữ được nói. Tính năng này sẽ chuyển đổi giữa các ngôn ngữ một cách linh hoạt khi người nói chuyển đổi ngôn ngữ.
Để sử dụng tính năng phát hiện tự động, hãy bỏ qua language_codes hoặc cung cấp một danh sách trống:
Python
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": [],
}
},
)
JavaScript
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: [],
},
},
});
REST
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": []
}
}
}'
Nếu biết trước ngôn ngữ, hãy chỉ định mã ngôn ngữ BCP-47 trong language_codes để cải thiện độ chính xác của bản chép lời (xem Các ngôn ngữ được hỗ trợ):
Python
generation_config = {
"transcription_config": {
"language_codes": ["es-ES"],
}
}
JavaScript
const generationConfig = {
transcription_config: {
language_codes: ["es-ES"],
},
};
REST
{
"generation_config": {
"transcription_config": {
"language_codes": ["es-ES"]
}
}
}
Từ vựng tuỳ chỉnh
Bạn có thể hướng mô hình lời nói đến những từ không thông dụng, biệt ngữ kỹ thuật, tên thương hiệu hoặc danh từ riêng. Cung cấp tối đa 1.000 cụm từ trong mảng custom_vocabulary (thường đạt được kết quả tốt nhất với tối đa 100 cụm từ):
Python
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"],
}
},
)
JavaScript
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"],
},
},
});
REST
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"]
}
}
}'
Phân tách người nói
Tính năng phân đoạn theo người nói xác định các giọng nói khác nhau trong bản ghi và gắn thẻ cho từng đoạn bằng một giá trị nhận dạng người nói, chẳng hạn như spk_1 hoặc spk_2. Hỗ trợ tối đa 8 người nói (thuộc tính cho 3 người nói trở lên đang trong giai đoạn thử nghiệm).
Bật tính năng phân tách người nói bằng cách định cấu hình diarization_mode trong mode:
Python
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",
},
}
},
)
JavaScript
const interaction = await client.interactions.create({
model: "gemini-3.5-transcribe",
input: [
{
type: "audio",
uri: audioFile.uri,
mime_type: audioFile.mimeType,
},
],