Pull to refresh

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 за день:) Пайтон, вебсокет и пайтороч, все больше ничего не требуется ну и модель конечно.

Ну благо модель для таких дел можно на HF получить, пока что можно.. Вы кстати собираете себе оффлайн базу моделей? Есть у меня мнение что через какое-то время будет не так просто получить хорошую модель бесплатно из открытых источников

По распознания голоса ещё можно попробовать Parakeet от нВидео. Локально на моем маке (М3 Эйр) ну очень быстрая. Буквально молниеносно распознает. У меня не ваш кейс, я для диктовки использую, так как "наговорил и поправил" сильно быстрее чем "напечатал" получается. Но скорость распознания локальная огромная просто. С русским проблем не увидел никаких - пожалуй может было бы помечтать, чтобы англоязычные термины пореже в русский переделывал, но виспер а таких местах вообще фигню выдает.

Я кстати видел паразит модельку да, там же парень вообще активно свой продукт по ассисту(обману) на собесах продвигает. Можно потестить будет, ага

Интересный опыт. А это будет работать для перевода real-time контента? Например, как сейчас работает AI переводчик видео на Ютубе от Яндекса?

от Яндекса хз если честно, да и я не думал в эту сторону, но там уже есть функция захвата окна браузера и собственно звука из него, так что в теории должно работать да. Но я бы не хотел слушать видосы в озвучку Дениса из Piper)))

UFO landed and left these words here

ну вот это по сути и есть STT > перевод > TTS, сейчас это самый реальный алгоритм из того что позволяют технологии, STS очень дорогой по GPU и из-за этого медленный.

Это тупиковый путь: 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? Ты просто теряешь кучу информации, преобразовывая речь в текст. Если тебе нужен голосовой синхронный переводчик, зачем там текстовое представление?

выглядит как мёртвая репа, ты пробовал?

Сижу на рабочем созвоне. Обсуждаем архитектуру нового сервиса. Технически я всё понимаю - документацию на английском читаю без словаря, код ревьюю, в 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.

Спасибо!

Kokoro даёт лучшее качество, но латентность, моделька то сама по себе тяжелей, для себя выбрал Piper, но поменять модель дело 5ти минут, если вам не важна скорость генерации, то смело ставьте kokoro!

Привет. Спасибо за идею. Ищу сейчас как раз нечто похожее для лайв перевода театрального выступления. Но из основных нюансов - нужно перевести с белорусского на русский. Подскажи, возможно ли такое?

Silero используйте как модель языковую, она отлично работает с СНГ языками

Блин, я загуглил переводчик в реальном времени для воис чата в играх, и теперь гугл не даёт мне отбоя.

а что протестил из рекламы и что реально работает? так-то для игры задержка капец как решает, в конфе твои 2-3 секунды могут ещё потерпеть, если говоришь умные вещи, а вот в игре за 2-3 секунды уже все разультуются и бой закончится xD

Здравствуйте, спасибо за статью.
Месяцев 8 назад делал похожее исследование RealTime STT транскрибаторов, для разработки собственного сервиса по прохождению мультиязычных технических собеседований. Пришёл примерно к такому же выводу и пришлось реализовывать своё решение)

В итоге обнаружил, что есть британский стартап soniox который под капотом уже делает всю нужную логику транскрибация + мгновенный перевод в нужный язык и выдача пользователю. По цене бесплатнее чем двойная подписка на модели как у вас + необходимо поддерживать только одного провайдера в моменте. Возможно, кому-то будет эта информация полезна)

в моём решении вообще нет подписок, всё бесплатно и на бесплатных тирах, в этом и изюм)))

Sign up to leave a comment.

Articles