Голосовой агент фиксирует реплику в момент срабатывания детектора окончания речи, и никакой последующий процесс не может начаться, пока слова не будут возвращены. Функция диктовки должна выводить текст на экран, пока пользователь все еще удерживает клавишу. Телефонное меню распознает одну реплику и разделяет вызов в зависимости от того, что оно услышало. Сообщение в режиме «нажми и говори» отправляется в тот момент, во время которого пользователь отпускает палец. Во всех этих случаях транскрипция выполняется в первую очередь, и каждая последующая модель анализирует слова, переданные транскрипцией. Неправильное слово на этом этапе означает неверный ответ три вызова спустя, и у LLM нет способа это узнать.
Модельный уровень, стоящий за этим первым вызовом, консолидирован везде, кроме самого первого вызова. Если вы строите свои решения на базе OpenRouter, вы уже получаете доступ к десяткам моделей через один ключ, один договор на выставление счетов и один формат запроса. Распознавание речи оставалось за пределами этой экосистемы — в виде отдельного поставщика, отдельного контракта, отдельного SDK — вокруг того единственного компонента, который определяет, что видит остальная часть вашего стека.
Сегодня Universal-3.5 Pro доступна на OpenRouter и работает через наш синхронный API распознавания речи (Sync Speech-to-Text API). Она указана в конечной точке транскрипции OpenRouter как assemblyai/universal-3-5-pro. Цены соответствуют нашим опубликованным тарифам, а OpenRouter передает их без наценки.
Один запрос POST к эндпоинту, который вы уже используете
Один запрос, одна расшифровка, никаких заданий для опроса и никаких поддерживаемых WebSocket-соединений:
Это вся интеграция. Если вы уже обращаетесь к OpenRouter для генерации ответов в чате, то меняются только путь и строка модели. Эндпоинт также принимает multipart-запросы в стиле OpenAI, поэтому существующий клиент OpenAI SDK, настроенный на базовый URL OpenRouter, будет работать с Universal-3.5 Pro без изменения кода. Метки времени для слов возвращаются через собственные поля OpenRouter response_format и timestamp_granularities, а не через наши, что позволяет сохранить форму ответа идентичной любой другой модели транскрипции на этом эндпоинте.
Три способа подсказать модели, что она сейчас услышит
Три опции AssemblyAI передаются в provider.options.assemblyai: prompt, keyterms_prompt и conversation_context. Именно они меняют результат при работе со сложным аудио и представляют собой разницу между в целом правильной расшифровкой и той, которая точно учитывает словарный запас вашего клиента.
prompt описывает ситуацию до того, как прозвучит первое слово. До 6000 символов, объясняющих модели, какая речь ожидается: ваша сфера, ваш продукт, структура беседы. «Расшифруйте этот медицинский разговор при первичном обращении» настраивает декодер на клиническую лексику, что как раз является той областью, где универсальная модель угадывает и ошибается с правдоподобным видом. Правдоподобная ошибка — это самая дорогая проблема, потому что она проходит все последующие проверки.
conversation_context передает предыдущие реплики с каждым запросом (до 500 реплик или 16 000 символов), и модель расшифровывает текущий фрагмент с учетом этой истории. Когда абонент отвечает «ага, вторую» или зачитывает цифры, которые только что запросил агент, модель понимает, на какой вопрос она отвечает. Оплата взимается только за аудио текущей реплики, поэтому передача всего диалога не стоит ничего, кроме увеличения размера запроса.
keyterms_prompt принимает до 100 терминов на запрос и настраивает модель на заранее известные вам строки: названия продуктов, наименования лекарств, SKU, принадлежащие именно этому аккаунту. Поскольку они отправляются с каждым запросом, их можно настраивать для конкретного разговора, а не зашивать в глобальную конфигурацию, что важно, когда ваш словарный запас различается в зависимости от клиента.
Создано для одной реплики и немедленного ответа
Синхронный API (Sync API) устроен точно так же, как запрос, который действительно делает голосовой продукт: одна реплика на входе, одна расшифровка на выходе в том же ответе. При прямом вызове он возвращает готовую расшифровку примерно за 134 мс на перцентиле p50, по сравнению с 5–6 секундами накладных расходов на создание задания и его опрос (submit-and-poll), которые добавляются к аудио длительностью в две секунды. Запрос, направляемый через OpenRouter, добавляет еще один сетевой переход поверх этого, поэтому рассчитывайте бюджет соответствующим образом и замеряйте p50 в своем регионе перед тем, как встраивать это в цикл обработки реплик.
Длительность клипов составляет от 80 мс до 2 минут, размер — до 40 МБ, поддерживается только формат WAV. Это ограничение заложено в саму архитектуру, а не является преградой, которую мы пытаемся обойти: аудио длиннее одной реплики предназначено для Асинхронного API (Async API), а живая сессия, которая остается открытой — для Режима реального времени (Realtime). Синхронный режим покрывает случаи, когда аудио изначально короткое и ответ нужен до того, как пользователь заметит ожидание.
Точность, которую наследует каждая последующая модель
Маркетплейсы создают впечатление, что модели взаимозаменяемы, но транскрипция — это тот самый вызов в стеке, где это не так. Universal-3.5 Pro занимает первое место по точности среди независимых бенчмарков распознавания речи и демонстрирует нормализованную частоту ошибок в словах (WER) 1,59% на коротких аудиозаписях, что точно соответствует звуковому профилю запросов в виде отдельных реплик.
Имена собственные, буквенно-цифровые комбинации, адреса электронной почты и почтовые адреса — это те строки, которые абонент произносит по буквам, а агент должен обработать, и именно здесь разница между моделями транскрипции проявляется как невыполненная задача, а не как более низкий балл. Это та же самая модель, которая работает на базе наших интерфейсов Async, Realtime и Sync на той же контрольной точке на всех 19 родных языках. Маршрутизация через OpenRouter изменяет отношения по оплате и форму запроса. Она не меняет саму модель.
Ключевые детали
Цены
$0,45 за час аудио с тарификацией по длительности, что соответствует тарифу Sync API на нашей странице цен. В течение первой недели через OpenRouter будет действовать скидка 50% от прайс-листа.
Начало работы
Если у вас есть ключ OpenRouter, приведенный выше фрагмент кода на Python будет работать в исходном виде. Если вам нужны функции, которые не поддерживаются OpenRouter, начните с бесплатной учетной записи AssemblyAI и ознакомьтесь с руководством по Sync API. Обе возможности ведут к одной и той же модели.
Часто задаваемые вопросы (FAQ)
Это та же самая модель, что и в собственном API AssemblyAI?
Да. Та же модель, та же контрольная точка, те же 19 языков. OpenRouter предоставляет интерфейс для Sync API, но не размещает у себя отдельную копию.
Нужна ли мне учетная запись AssemblyAI?
Нет. Ваш ключ OpenRouter — это единственная необходимая учетная данные, а оплата происходит через OpenRouter. Учетная запись AssemblyAI нужна только для тех функций, которые не поддерживаются OpenRouter.
Делает ли OpenRouter наценку на цену?
Нет. $0,45 за час аудио — это наша опубликованная ставка Sync, которая передается без изменений.
Могу ли я использовать свой существующий клиент OpenAI SDK?
Да. Укажите базовый URL OpenRouter и задайте строку модели. Эндпоинт принимает multipart-запросы в стиле OpenAI.
Как получить метки времени для слов?
Установите response_format: "verbose_json" и timestamp_granularities: ["word"]. Это поля OpenRouter, а не наши.










