Comments 53
AI Open Source Voice AI Real-time перевод Deepgram Groq Piper TTS STT TTS LLM Google Meet Zoom Личный опыт Elixir Rust macOS Apple Silicon Speech-to-Text Text-to-Speech
???
Привет!
Я автор опенсорс голосового помощника Ирина (на Хабре 4 статьи + Гитхаб есть).
Могу порекомендовать рассмотреть в воркфлоу еще следующие технологии:
STT - Vosk STT, у меня стриминговый, отдает ответ по ходу разговора, минимальная задержка. Отлично работает локально, не надо ничего отсылать никуда (хотя качество, вероятно, ниже DeepGram). И да - одноязычный.
TTS - можно посмотреть в сторону Vosk TTS или Silero - тоже оба локальные, VOSK TTS очень быстрый. Тоже под один язык, правда.
Silero только для рус языка подходит, ну и СНГ языки, нормальной международник у них нет
Да, мультиязычности там нет - под мой кейс норм, не до конца понял, как под ваш.
а что именно переводит Ирина? она у тебя как раз для СНГ работает? я думал кстати когда изучал Silero, что можно дропнуть ветку с Silero которая как раз будет только на СНГ работать, так-то многие из Узбекистана/Киргизии/Казахстана кто не знает русского хотели бы тоже иметь инструмент для общения(возможно нет, они уже знают английский xD)
Для СНГ. Это не переводчик, это голосовой помощник - опенсорс, оффлайн-ready, с возможностью подключать скиллы: https://github.com/janvarev/Irene-Voice-Assistant
У меня основной кейс русский->русский, но тему "как подключать STT и TTS" я курил довольно прилично.
На счёт того, что виспер не годиться для реалтайма - можно поспорить. Смотря какая модель и как настроена работа с ней. Если видеокарта достаточно мощная, то нормой будет задержка на уровне 150-250мс.
По крайней мере его можно использовать для потока иностранных языков, а для русского взять что-то другое, если качество не устраивает. Но я не спорю, что это усложнение и оно не выглядит универсальным решением.
С норм видюхой возможно да, я под свой мак собирал, у меня нет мощной видюхи, ну и на тестах и так и сяк крутил, не смог закрутить, если есть мысли как докрутить, велком
Да, насколько быстрое оно на маке будет - не знаю, возможности протестировать не было. Мой кейс для видюх от 6-8gb.
P.S. За статью спасибо)
Вибдяха за 10к. Обработает реалтайм 50-70 человек не напрягаясь:)) я собрал свой первый asr за день:) Пайтон, вебсокет и пайтороч, все больше ничего не требуется ну и модель конечно.
По распознания голоса ещё можно попробовать Parakeet от нВидео. Локально на моем маке (М3 Эйр) ну очень быстрая. Буквально молниеносно распознает. У меня не ваш кейс, я для диктовки использую, так как "наговорил и поправил" сильно быстрее чем "напечатал" получается. Но скорость распознания локальная огромная просто. С русским проблем не увидел никаких - пожалуй может было бы помечтать, чтобы англоязычные термины пореже в русский переделывал, но виспер а таких местах вообще фигню выдает.
Интересный опыт. А это будет работать для перевода real-time контента? Например, как сейчас работает AI переводчик видео на Ютубе от Яндекса?
от Яндекса хз если честно, да и я не думал в эту сторону, но там уже есть функция захвата окна браузера и собственно звука из него, так что в теории должно работать да. Но я бы не хотел слушать видосы в озвучку Дениса из Piper)))
Это тупиковый путь: STT -> text translation -> TTS. Нужен прямой Speech-to-speech c auto-translation и voice transfer в real-time на CPU и мобильных устройствах.
Вот, например, интересная модель: https://github.com/kyutai-labs/hibiki
Hibiki adapts its flow to accumulate just enough context to produce a correct translation in real-time, chunk by chunk. As the user speaks, Hibiki generates natural speech in the target language, optionally with voice transfer, along with a text translation.
И проект moshi от тех же ребят: https://github.com/kyutai-labs/moshi
В этом направлении надо двигаться без всяких STT/TTS.
hibiki очень слаб по латентности, и по сути используют алгоритм который по мысли похож на мой. У меня тоже перевод происходит не дожидаясь конца фразы и именно это позволяет собеседнику начать слышать тебя, пока ты на своём конце провода ещё говоришь. На айфоне мой переводчик работать конечно же не будет))
А вот S2S это да, технология будущего, если ещё суметь это грамотно объединить с предиктивной LLM, чтобы она работала как машина времени и начинала перевод до того как ты скажешь, то именно это и станет технологией для реализации реалтайм переводчика, но пока нам не хватает GPU
Вижу в списке языков японский, турецкий и немецкий. Не дожидаясь конца фразы можно обнаружить, что сказаное имеет другой смысл или вообще инвертируется. С этим бороться даже не планируется?
Одна карта за 10к р. Обработает 50-70 человек реал тайм по твоему тупиковый? По технологии stt-tts Если ты спец и пилишь свой код на голом пайтороч без готовых говно прог, делается все за день
Тупиковый не в плане производительности, а просто тупиковый архитектурно. Как ты сделаешь voice transfer, перенесешь интонации и эмоциональность в STT->LLM->TTS? Ты просто теряешь кучу информации, преобразовывая речь в текст. Если тебе нужен голосовой синхронный переводчик, зачем там текстовое представление?
Нашёл такую штуку -
SeamlessM4T models support the tasks of:
Speech-to-speech translation (S2ST)
Speech-to-text translation (S2TT)
Text-to-speech translation (T2ST)
Text-to-text translation (T2TT)
Automatic speech recognition (ASR)
Сижу на рабочем созвоне. Обсуждаем архитектуру нового сервиса. Технически я всё понимаю - документацию на английском читаю без словаря, код ревьюю, в Slack переписываюсь нормально. А вот когда надо открыть рот и сказать что-то сложнее "I agree" - начинается цирк. Пауза. Подбираю слова. Коллега уже ответил за меня.
Знакомо? Мне - до зубного скрежета.
Я CTO
Который не удосужился подтянуть разговорный английский? При том, что, судя по всему, это часть вашей работы
Задержка 2-3 секунды. Для демо на конференции норм. Для живого разговора - неловкие паузы после каждой фразы
А почему "неловкие"? По-моему, вполне нормально, что при международном разговоре собеседники выдерживают паузу между репликами, как минимум для лучшего понимания собеседника, как максимум для использования переводчиков. Что в этом плохого? Вы прям вавилонскую рыбку хотите. Не, я тоже хочу, мы все хотим прогресса и техномагии, но в том, что на нынешнем этапе технологии неидеальны, нет ничего плохого, а тем более неловкого.
С переводом тоже не всё гладко. LLM переводит смысл, но разговорная речь - это не смысл. "Ну, такое" превращается в "well, something like that". Формально верно. По ощущениям - как будто за тебя говорит иностранец из учебника. Сарказм, идиомы, контекст - теряются.
Опять же: это вообще не является недостатком для подобного переводчика. То, что вы описываете - это работа литературного переводчика, длительный и высокооплачиваемый ручной труд.
В общем, плюс вам в карму за прекрасную разработку, но рекомендую чуть усечь ожидания от технологий :)
Дак всё так, я хочу чтобы было прям идеально, но технологии далеко не всегда это позволяют, об этом же говорю в одном из блоков, а насчёт выдерживают паузу да, но не когда это пауза в середине фразы..
А насчёт качества перевода блин, тут не соглашусь там можно ещё докрутить чтобы ИИшка получала контекст разговора и тогда становится перевод намного лучше, но задержка увеличивается сильно, и из бесплатного тарифа срока уже приходится вылезать. Но тогда да, качество становится намного лучше, оно даже местами переводит лучше чем ты сам говоришь, то есть убирает всякие слова паразиты и докручивает твою речь до профессиональной(от промыта опять же многое зависит)
Спасибо за статью и за вашу работу. Было безумно интересно и чрезвычайно познавательно. А в Microsoft Teams работает?
Я не тестил, но в теории да, там так же нужно просто блекхол устройства выбирать вместо родных микро и динамикой, общая идея проекта в том что он работает не с конкретной программой, а с аудио самим, поэтому и дискорд и тг, да что угодно будет работать, вот выше парень даже нашёл применение ютуб видики переводить)
Да, было бы интересно увидеть реализацию. Сейчас я использую перевод с помощью плагина Tampermonkey для хром-браузеров, но он работает, скажем так, через раз. Мне кажется, у вашего инструментария большой потенциал. Если бы ещё упаковать его в приложение для смартфонов…
оно не будет работать на смартфонах. Ну в такой конфигурации, но вот выше наводку дали на kyutai-labs, проковыряюсь в их моделях, может в след версии будет какой-то STS апдейт, но латенси больше двух секунд для меня уже звучит как помойка.
А если использовать Элевен или Кортезию становится платной и довольно дорогой, типа теряет смысл опять же.
Такое ощущение, что генерировалось в нескольких разных сессиях с LLM, без согласования деталей и последующей вычитки.
а ещё без редактора, главного редактора, корректора и нескольких журналистов. Извините если данный материал слишком технический, и не соответствует вашим высоким стандартам журналистики =)
и, главное, вы не заплатили конских гонораров всем этим замечательным людям, за что они на вас в лице своего фронтмена ув. SabMakc смертельно обиделись :)
Моим высоким стандартам не хватает согласованности между частями текста - только и всего. Чтобы если в начале сказано
И вот в голове простая картинка: я говорю по-русски, собеседник слышит английский.
То и в конце эта идея хотя бы прослеживалась при выборе голоса для собеседника:
Для русского - три штуки. Мой любимый - “Денис”. … Собеседник слышит этого Дениса вместо тебя и у него на лице выражение которое сложно описать словами.
Это самый заметный ляп, но далеко не единственный.
P.S. Для технического текста тут явно не хватает технических деталей.
P.P.S. Хотя, если этот Денис звучит на английском как советский препод - возможно, сложное выражение лица вполне объяснимо.
И комментируют тоже боты. До чего дошёл прогресс! 🫣🥳🤡
ну это уже давно везде, всё равно ботов часто видно, не по одному сообщению так по нескольким, а вот ошибки изъяны нестандартный подход имеет всё больше веса и ценности в мире
у меня как-то был случай :) я опубликовал на ФБ перевод статьи из The Telegraph, в основном сделанный переводчиком ChatGPT и отредактированный мной в проблемных местах. Так в каменты тут же примчались умники и стали *язвительно* уточнять: "это же ИИ написал, да?" Даже ссылка на ориг. статью помогла ограниченно. Предложил одному из них перевести статью без ИИ за 10 минут, "время пошло". Герой, что бы вы думали, слился :)
Здравствуйте!
Тоже понадобился реал-тайм голосовой переводчик для одной творческой идеи. Наткнулся на ваши статьи и хотел проиграться с вашим проектом. Для меня актуален именно перевод с русского на английский с хорошим качеством звучания. Из вашей статьи понял что Kokoro для этого лучше подходит чем Piper. Так же в прошлой статье вы писали что в вашем Финальном стеке переводчика был именно Kokoro. Сейчас на гитхабе и в этой статье в качестве TTS используется Piper. В технической стороне я не сверх силён и хотел бы узнать как можно было бы использовать Kokoro.
Спасибо!
Привет. Спасибо за идею. Ищу сейчас как раз нечто похожее для лайв перевода театрального выступления. Но из основных нюансов - нужно перевести с белорусского на русский. Подскажи, возможно ли такое?
Блин, я загуглил переводчик в реальном времени для воис чата в играх, и теперь гугл не даёт мне отбоя.
Здравствуйте, спасибо за статью.
Месяцев 8 назад делал похожее исследование RealTime STT транскрибаторов, для разработки собственного сервиса по прохождению мультиязычных технических собеседований. Пришёл примерно к такому же выводу и пришлось реализовывать своё решение)
В итоге обнаружил, что есть британский стартап soniox который под капотом уже делает всю нужную логику транскрибация + мгновенный перевод в нужный язык и выдача пользователю. По цене бесплатнее чем двойная подписка на модели как у вас + необходимо поддерживать только одного провайдера в моменте. Возможно, кому-то будет эта информация полезна)
Все переводчики речи в реальном времени — херня. Я написал свой. Тоже херня, но бесплатная