Отправьте звук, получите переведённый голос.
В реальном времени и внутри того потока, который у вас уже есть. Тот же движок, что держит конгресс, доступный по протоколам, на которых ваша установка уже говорит.
Настоящая установка
Собор Сантьяго-де-Компостела: устройство в зале, звук уходит к движку, а перевод приходит на телефон слушателя. Больше пяти часов подряд, в одной из самых недружелюбных акустик, какие есть.
Как это встраивается
Три части, и о средней вам заботиться не нужно.
Вход
Ваш звук
Непрерывный поток по SRT — или WebRTC, когда говорит телефон, уже вошедший в учётную запись.
Движок
Одно прослушивание, все языки
Звук слышится один раз, и из этого одного прослушивания выходят все целевые языки. Ни один не ждёт за другим.
Выход
Голос и текст
Переведённый голос в ваш собственный WebRTC по WHIP, а для текста — один HTTP-POST на каждую переведённую фразу.
Четырнадцать языков параллельно на одном узле и 812 мс от края до края.
Куда входит звук.
Зал, в котором говорят, не отправляет файлы: он отправляет непрерывный поток и должен продолжать отправлять через сеть, которая теряет пакеты. Для этого и есть SRT.
- Звонит ваше устройство. При создании зала вам возвращается уже собранный адрес целиком — сервер, порт, идентификатор устройства и пароль.
- Opus в контейнере MPEG-TS, моно, 16 кГц, около 24 кбит/с. Это речь, а не музыка, и лишняя полоса не покупает ничего, что было бы слышно.
- Пароль — на устройство и не является необязательным: незашифрованное соединение отклоняется, как бы правильно ни было всё остальное. Десять символов — это нижний предел самого SRT, а не наш.
- Отправляйте непрерывно, с отключённой прерывистой передачей. Поток, который останавливается на паузах, съедает начало той фразы, что его снова запускает.
Адрес подключения — так, как его возвращает зал
srt://HOST:8890?streamid=DEVICE_ID&mode=caller&latency=120&passphrase=SECRETКонвейер, который крутится на нашем собственном устройстве
Самый короткий способ проверить ваш — запустить ровно это. Линейный вход обычно приходит тише микрофона: если ваш звучит слабо, добавьте ступень громкости, а не давите сильнее на кодировщик.
gst-launch-1.0 -e \
alsasrc device=plughw:CODEC,0 ! audioconvert ! audioresample ! \
audio/x-raw,rate=16000,channels=1 ! \
opusenc bitrate=24000 ! mpegtsmux ! \
srtsink uri="srt://HOST:8890?streamid=DEVICE_ID&mode=caller&latency=120&passphrase=SECRET"Второй вход — WebRTC. Он подходит, когда говорит телефон, уже вошедший в учётную запись: устанавливать нечего и аутентифицироваться нечем, поэтому зал не возвращает никаких учётных данных.
И откуда выходит.
Если у вас уже есть инфраструктура WebRTC — видеоплатформа, приложение мероприятия, аппаратная — вам не нужно входить в наш зал, чтобы забрать перевод. Дайте нам точку WHIP, и мы будем публиковать туда.
- Каждый целевой язык — своя сессия WHIP. Точка WHIP вправе принимать одну звуковую дорожку, и многие так и делают, так что пять языков в одной сессии пришли бы как один, а четыре молча пропали бы.
- Поставьте в адрес маркер языка — и у каждого языка будет свой путь; уберите его — и язык поедет параметром запроса. И так, и так ваша сторона сможет их различить, а различать она обязана.
- Если вы зададите токен, он уходит заголовком Authorization Bearer, а по окончании выступления мы удаляем ресурс сессии, чтобы ничто не держало соединение.
- По умолчанию это в дополнение к залу: ваши слушатели продолжают работать, и ваша установка тоже получает звук. Сделайте это единственным назначением — и зал перестанет использоваться.
Две формы точки публикации
delivery.whip.url = https://you.example.com/ingest/{lang}/whip → …/ingest/en/whip
delivery.whip.url = https://you.example.com/whip → …/whip?lang=enТекст едет отдельно, и это не мелочь
WHIP несёт медиа и больше ничего — в протоколе нет канала данных, — поэтому субтитры не могут прийти внутри звука. Дайте нам адрес, и мы будем делать POST на каждую переведённую фразу: зал, сегмент, язык, с которого она пришла, и язык, на который ушла. Тот, кто собирает это, считая, что текст придёт вместе со звуком, узнает об этом в день мероприятия.
С чем работает как есть
Это те, кого называет спецификация, а не стена логотипов. Для того, что дальше по цепочке говорит на RTMP или SRT, MediaMTX впереди наводит мост от WHIP — и ни одному из нас не придётся писать код.
Это не справочник API, и разница важна
Это две двери к одному движку, и войти не в ту стоит дня. Эта — чтобы пропустить через него медиапоток. Та — чтобы под него программировать.
Эта страница
У вас уже есть движущийся звук, и вы хотите перевод внутри этого движения. Вам нужны порт, кодек и место, куда публиковать.
Справочник API
Вы пишете код: создать залы, загрузить запись, запросить результат в нужном формате, решить, кто может брать слово. Точка за точкой, с примерами, которые работают, если их вставить.
Перейти к справочникуОбе встречаются в одном месте: точка WHIP и адрес для текста — это настройки зала, а зал создаётся через API.
Задержка от края до края — 812 мс: весь путь, от того, что кто-то заговорил, до того, что его услышали переведённым.
Четырнадцать языков выходят из одного прослушивания звука, так что четырнадцатый стоит столько, сколько стоит четырнадцатый, а не в четырнадцать раз больше первого.
Интеграции и задания: отдельные минуты
Для вещания из комнаты или обработки файлов. Без абонплаты: вы покупаете минуты, и они расходуются по мере перевода. Их можно потратить в течение двенадцати месяцев, и во всех пакетах — тот же движок и те же четырнадцать языков.
Цветом — то, что произносится
тишина · счётчик стоит
не идут в счёт
Час встречи, 20 минут речи: 20 минут засчитано.
20 €+ НДС
Несколько мероприятий или проба на чём-то настоящем.
- 100 минут
- голоса, переведённого на один язык
- 0,20 € за минуту
- без абонплаты, и двенадцать месяцев на расход
- —
- базовая цена
- ≈ 1 служба
- по часу, 40 минут речи, четыре языка
- Четырнадцать языков
- из одной записи и одновременно
85 €+ НДС
Еженедельная служба и весь её сезон.
- 500 минут
- голоса, переведённого на один язык
- 0,17 € за минуту
- без абонплаты, и двенадцать месяцев на расход
- −15 %
- скидки от поштучной цены
- ≈ 6 служб
- по часу, 40 минут речи, четыре языка
- Четырнадцать языков
- из одной записи и одновременно
300 €+ НДС
Несколько залов, работающих каждую неделю.
- 2 000 минут
- голоса, переведённого на один язык
- 0,15 € за минуту
- без абонплаты, и двенадцать месяцев на расход
- −25 %
- скидки от поштучной цены
- ≈ 24 службы
- по часу, 40 минут речи, четыре языка
- Четырнадцать языков
- из одной записи и одновременно
675 €+ НДС
Место, которое вещает почти каждый день.
- 5 000 минут
- голоса, переведённого на один язык
- 0,135 € за минуту
- без абонплаты, и двенадцать месяцев на расход
- −32,5 %
- скидки от поштучной цены
- ≈ 60 служб
- по часу, 40 минут речи, четыре языка
- Четырнадцать языков
- из одной записи и одновременно
В каждом пакете, без исключений
- Все четырнадцать языков, из одной и той же записи
- Столько залов, сколько захотите создать
- Записи, документы и субтитры
- Весь API и собственные ключи
- Счёт на каждую покупку, с вашими реквизитами
- Из живого зала ничего не записывается
Сопровождение оценивается отдельно
Минута оплачивает движок, а не часы работы человека. Всё, за чем стоит кто-то из нас, оценивается отдельно:
- Запуск: подключить ваш SRT или WebRTC и проверить схему
- Быть на связи в день мероприятия
- Разработка под то, что нужно вашему потоку
- Установка внутри вашей сети
Или любая сумма
По 0,20 € за минуту, без скидки за объём — для этого есть пакеты. От 10 € до 5000 €, и деньги на счету, как только платёж пройдёт.
Первые 30 минут за наш счёт
Сохраните карту — и они у вас на счету. Ничего не списывается, и на странице карты тоже стоит 0 €: карта лежит на тот день, когда вы захотите пополнить в один клик, а не чтобы втихую списывать. Действуют три месяца: они для того, чтобы попробовать, а не чтобы копить.
Поговорите с инженерами
Четыре поля и ни одного вопроса про месячный объём — на этом этапе его никто не знает. Расскажите, что у вас перед глазами, и ответит тот, кто уже это подключал.
Слова, которые в ходу только у вас
Собственные имена организации — люди, улицы, обозначения, должности — это именно то, чего общая модель никогда не слышала, и там она ошибается: заменяет их обычным словом, которое похоже звучит. Записываются один раз — и перестают подводить. Записываются в комнате и действуют для всех её встреч.
- Это список, а не обучение: записали — и работает с первой же фразы.
- Он ничего не собирает. Ни ваш звук, ни ваш текст, ни одной секунды чего бы то ни было.
- И входит в стоимость. Не отдельный тариф и не строка в счёте.