Переводчик в каждый дом

Одно время я очень боялся проходить собеседования на английском. При том что знаю его неплохо и даже 2 года жил в США. Тем не менее, долгий перерыв в голосовом общении дает о себе знать. Особенно меня беспокоит то, что я могу не понять что именно мне говорят во время созвона.
Поэтому я решил себе сделать помощника на основе имеющихся моделей ИИ для синхронного перевода. Итогом этой работы стал проект transono. Это, по большей части, - библиотека на Rust для работы со звуком (пока только для Linux, хотя, проверена и в работе на MacOS). Но в ее составе есть и два приложения. Одно - служебное, которое создает в системе виртуальные звуковые устройства. Второе - приложение tui самого переводчика. В нем есть несколько переключаемых режимов работы, но максимальный - это полноценный синхронный переводчик в обе стороны.
Выглядит его работа довольно просто. Первым приложением создаются виртуальные звуковые устройства в системе. При созвоне в приложении или браузере указываются виртуальные устройства для звука. Запускается второе приложение и далее, кроме голосового перевода (который можно отключать в процессе), на экран выдается еще и текстовый перевод в обе стороны. Причем, с распознанным оригиналом для контроля.
Пару раз мне это приложение уже пригодилось. :)
Но сегодня я хочу рассказать о другом приложении для перевода, которое, возможно, для многих покажется более интересным.
AI-translator
Это приложение с открытым исходным кодом - адаптер между звуковыми и текстовыми устройствами пользователя и ИИ-моделями переводчиками (сейчас реализован только openai-интерфейс, но расширение в планах). Среди пакетов в релизах есть версии под Linux, Windows и MacOS (в MacOS только для архитектуры ARM).
Оно получает звук речи из указанного вами источника, отправляет его модели-переводчику от openai, а результат в виде голосового и текстового потока перевода отправляет в сконфигурированные приемники.
В данный момент в качестве приемников можно использовать (настраивается через файл конфига):
Текст перевода: - консоль, в котором запущено приложение;
- постоянно дописываемый srt-файл субтитров;
- websocket, который можно использовать либо из других приложений, либо через встроенную http страницу;
- в Телеграм канал;
- вывод на указанное аудио-устройство;
- в трансляцию Телеграм-канала;
Пока это только первая версия, но она уже использовалась на реальном событии. Синхронный перевод выводился на большой экран во время выступлений на фестивале. Кроме того, поток с websocket использовался для формирования субтитров в youtube-трансляциях.
Самым неожиданным для меня лично оказалась стоимость. В общей сложности, это приложение работало в режиме перевода примерно 8 часов. И за все это время было израсходовано около $20 с мелочью.
Участники фестиваля оказались очень довольны работой этого синхронного перевода.
Планы
Как я уже заметил - сейчас у этого приложения относительно небольшие возможности. Однако, в планах есть его доработка для поддержки передачи потоков субтитров и аудио в самые разные приемники.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.