Перевод аудио
Полный список моделей можно посмотреть на странице Модели или получить динамически через API эндпоинты: https://openai.bothub.chat/v1/models и https://bothub.chat/api/v2/replicate/v1/models
API перевода аудио позволяет преобразовывать речь из аудиофайлов в текст на английском языке. В отличие от обычной транскрипции, где результат возвращается на языке оригинальной записи, перевод всегда возвращает текст на английском независимо от языка исходного аудио.
Эта возможность особенно полезна при обработке интервью, звонков, подкастов, видеозаписей и другого мультиязычного контента. Например, вы можете автоматически получать английские субтитры для видео или переводить голосовые сообщения для дальнейшего анализа.
Для перевода аудио используется модель whisper-1. Она построена на базе Whisper от OpenAI и поддерживает большое количество языков, а также хорошо справляется с шумной речью и длинными записями.
Поддерживаемые форматы
API поддерживает работу с форматами mp3, mp4, mpeg, mpga, m4a, wav и webm.
Базовый пример
- JS
- Python
- Go
- cURL
import OpenAI from "openai";
import fs from "fs";
const openai = new OpenAI({
apiKey: "<ваш токен доступа>",
baseURL: "https://openai.bothub.chat/v1",
});
async function main() {
const translation = await openai.audio.translations.create({
file: fs.createReadStream("/путь/к/аудио.mp3"),
model: "whisper-1",
});
console.log(translation.text);
}
main();
from openai import OpenAI
client = OpenAI(
api_key="<ваш токен доступа>",
base_url="https://openai.bothub.chat/v1",
)
audio_file = open("/путь/к/аудио.mp3", "rb")
translation = client.audio.translations.create(
model="whisper-1",
file=audio_file,
)
print(translation.text)
package main
import (
"context"
"fmt"
"os"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
)
func main() {
client := openai.NewClient(
option.WithAPIKey("<ваш токен доступа>"),
option.WithBaseURL("https://openai.bothub.chat/v1"),
)
file, err := os.Open("/путь/к/аудио.mp3")
if err != nil {
panic(err)
}
defer file.Close()
translation, err := client.Audio.Translations.New(context.Background(), openai.AudioTranslationNewParams{
Model: openai.AudioModelWhisper1,
File: openai.File(file, "аудио.mp3", "audio/mpeg"),
})
if err != nil {
panic(err)
}
fmt.Println(translation.Text)
}
curl https://openai.bothub.chat/v1/audio/translations \
-H "Authorization: Bearer <ваш токен доступа>" \
-H "Content-Type: multipart/form-data" \
-F file="@/путь/к/аудио.mp3" \
-F model="whisper-1"
Расширенный JSON-ответ
Помимо обычного текстового ответа, API поддерживает формат verbose_json. Он позволяет получить дополнительную информацию о результате перевода, включая сегменты текста, временные метки и служебные метаданные.
Чтобы использовать расширенный формат ответа, передайте параметр response_format: "verbose_json".
- JS
- Python
- Go
- cURL
const translation = await openai.audio.translations.create({
file: fs.createReadStream("/путь/к/аудио.mp3"),
model: "whisper-1",
response_format: "verbose_json",
});
console.log(translation.text);
console.log(translation.segments);
translation = client.audio.translations.create(
model="whisper-1",
file=audio_file,
response_format="verbose_json",
)
print(translation.text)
print(translation.segments)
translation, err := client.Audio.Translations.New(context.Background(), openai.AudioTranslationNewParams{
Model: openai.AudioModelWhisper1,
File: openai.File(file, "аудио.mp3", "audio/mpeg"),
ResponseFormat: openai.AudioTranslationNewParamsResponseFormatVerboseJSON,
})
if err != nil {
panic(err)
}
fmt.Println(translation.Text)
fmt.Println(translation.Segments)
curl https://openai.bothub.chat/v1/audio/translations \
-H "Authorization: Bearer <ваш токен доступа>" \
-H "Content-Type: multipart/form-data" \
-F file="@/путь/к/аудио.mp3" \
-F model="whisper-1" \
-F response_format="verbose_json"
Основные параметры
| Параметр | Тип | Описан ие |
|---|---|---|
file | file | Аудиофайл для перевода |
model | string | Модель перевода (whisper-1) |
prompt | string | Дополнительный контекст для улучшения качества |
response_format | string | Формат ответа (json, text, verbose_json, srt, vtt) |
temperature | number | Уровень вариативности генерации |
Рекомендации
Для более точного результата рекомендуется использовать записи с качественным звуком и минимальным количеством шумов. Если вы работаете с длинными аудиофайлами, лучше разбивать их на несколько частей. Для работы с таймкодами и сегментами текста используйте формат verbose_json.