Распознавание и синтез речи нейросетями: Whisper, TTS и озвучка текста по API
Распознавание речи превращает аудио в текст, синтез делает обратное. В каталоге LLM Mart есть Whisper от OpenAI для транскрипции, GigaASR и Voxtral для тех же задач и модели ElevenLabs и Fish Audio для озвучки. Распознавание оплачивается за минуты аудио, синтез за объём текста.
Содержание
Два направления и разные модели
Распознавание речи нужно, когда есть аудио и требуется текст: расшифровка встреч, субтитры, голосовой ввод. Синтез решает обратную задачу: из текста получается звук, который нужен для озвучки, подкастов и голосовых ассистентов.
Модели в каталоге размечены по этим задачам. Whisper от OpenAI и его большие версии закрывают транскрипцию, GigaASR от Sber и Voxtral от Mistral тоже работают с речью. За синтез отвечают модели ElevenLabs, Fish Audio и Sber SaluteSpeech.
Транскрипция
Маршрут POST /audio/transcriptions принимает файл через multipart вместе с полем model. Ответ приходит в JSON с текстом, а параметр stream включает потоковую отдачу. Файл передаётся с корректным MIME-типом, иначе часть поставщиков откажет.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["LLM_MART_API_KEY"],
base_url="https://llmmart.ru/api/v1",
)
with open("meeting.mp3", "rb") as f:
result = client.audio.transcriptions.create(
model="openai/whisper-1",
file=f,
)
print(result.text)Синтез речи
Синтез идёт на POST /audio/speech с JSON-телом: модель, текст и голос. Ответ приходит бинарным аудиофайлом, а не JSON, поэтому в клиенте его нужно сохранять сразу.
curl -s "https://llmmart.ru/api/v1/audio/speech" \
-H "Authorization: Bearer $LLM_MART_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"sber/salutespeech","input":"Привет, это тест озвучки.","voice":"alloy"}' \
-o speech.mp3Карточка SaluteSpeech в каталоге указывает эндпоинт /audio/speech, а голос alloy взят из её примера кода. Набор голосов зависит от модели: у одних это условные имена вроде alloy, у других собственный каталог. Проверять набор стоит в документации провайдера, потому что через шлюз параметры пробрасываются как есть.
Для озвучки на русском стоит попробовать Fish Audio: S2 Pro. Модель поддерживает больше 80 языков, русский входит во второй уровень качества вместе с немецким и французским. Тарифы есть в карточке Fish Audio S2 Pro для озвучки, а все модели для речи собраны на отдельной странице.
Как считается стоимость
У распознавания тарификация идёт за время: минуты или секунды записи. Синтез считается по объёму входного текста, например у SaluteSpeech за символы. Сравнивать аудиомодели с текстовыми по цене за миллион токенов не стоит.
Практический ориентир можно получить в кабинете: обработать несколько типовых записей и посмотреть сумму. Для потока расшифровок это точнее, чем любая таблица, потому что качество и цена сильно зависят от длины файлов и шума на записи.
Что проверить перед выбором
Первое: язык и акцент. Модель, которая хорошо распознаёт английские звонки, может путаться в русской быстрой речи и терминах. Проверяйте на своих записях, а не на демо.
Второе: формат и качество исходника. Шум, эхо и узкая полоса пропускания ухудшают результат сильнее, чем смена модели. Иногда дешевле улучшить запись, чем платить за более дорогую модель.
Третье: требования к хранению данных. Если запись содержит персональные данные, проверьте, где она обрабатывается. Механика вызова описана в документации по аудио, модели собраны в каталоге.
Частые вопросы
Чем Whisper отличается от TTS?
Whisper решает обратную задачу: он превращает аудио в текст, то есть делает расшифровку. TTS или синтез речи, наоборот, читает текст голосом и выдаёт аудиофайл. В каталоге LLM Mart это разные маршруты: /audio/transcriptions для распознавания и /audio/speech для озвучки, и модели у них тоже разные.
Сколько стоит распознавание речи?
Стоимость считается за время записи, а не за токены, поэтому цена за миллион токенов к аудио не применяется. Итог зависит от длительности файлов и выбранной модели: расшифровка часа записи стоит заметно дороже десятиминутной. Точную сумму по своим файлам проще увидеть в кабинете LLM Mart после нескольких тестовых запросов.
Какой формат аудио можно отправлять?
Маршрут /audio/transcriptions принимает файл через multipart с корректным MIME-типом, лимит на одну часть до 25 MiB. Поддерживаемые форматы зависят от модели, их стоит проверить в документации провайдера. Длинные записи лучше резать на куски по несколько минут, чтобы не упираться в лимит размера в LLM Mart.
Есть ли русские голоса для синтеза речи?
Да, русский есть у Sber SaluteSpeech, у многоязычных моделей ElevenLabs и у Fish Audio S2 Pro, где он входит во второй уровень качества. Набор голосов задаётся моделью, параметр voice пробрасывается как есть, поэтому список смотрите в документации провайдера. В каталоге LLM Mart озвучка вызывается тем же ключом, что и текстовые модели.
Можно ли расшифровывать звонки в реальном времени?
Для этого есть отдельный маршрут realtime, и он требует двух credential: API-ключа организации и client secret. Обычная транскрипция работает с готовым файлом, а не с потоком. Если нужна потоковая расшифровка, смотрите раздел realtime в документации LLM Mart, там описаны ограничения и формат подключения.
Комментарии 0