Мы сделали бесплатного телеграм-бота, который переводит аудио в текст. В отличие от нашего бесплатного публичного решения для транскрибации длинных аудио, этот бот скорее настроен для удобства работы с короткими голосовыми сообщениями, заметками и аудио средней длины (несколько минут).
Боту можно послать аудио как напрямую, так и добавить в группу. В группе бот будет реагировать на все аудиофайлы (но сообщения об ошибках выводиться не будут). Более подробно об ограничениях и особенностях работы можно узнать в методах /help
и /faq
.
Основная UX фишка работы бота — проработанный и удобный формат чтения и навигации по распознанным сообщениям и заметкам (а не стена текста).
Как воспользоваться
Нужно просто пройти по ссылке или просто открыть страницу бота @silero_audio_bot
в Телеграме. Затем:
- Введите команду
/start
для старта; -
/help
и/faq
помогут понять основные допущения и ограничения в работе;
Мы тщательно протестировали основные ограничения и свели список основных проблем и краевых кейсов в вышеописанные команды. Если вы найдете новые краевые кейсы, там указаны прямые контакты, можете написать нам. Мы не прячемся и не кусаемся.
Ключевые особенности и отличия от существующих решений
Сразу чтобы вы понимали — мы разрабатываем алгоритмы, а не просто перекладываем ваши персональные данные в "джейсончики" в АПИ корпораций. Все алгоритмы и разработки, участвующие в работе бота, наши собственные.
Мы гордимся тем, что:
- Бот работает на основе наших систем детекции речи (кстати ее скоро ждет огромное обновление!), распознавания речи, простановки знаков препинания и заглавных букв;
- Наша система распознавания как минимум не уступает решениям корпораций (вопрос дискуссионный, по нашим исследованиям на примерно 20 разных доменах наша система была лучшей на большинстве из них, кроме ряда ярких исключений, типа звонков в банки);
- Бот "пытается" быть максимально удобным с точки зрения UX и читабельности в рамках возможностей Телеграма;
Мы НЕ делаем следующих вещей:
- Мы НЕ собираем данные о пользователях;
- Мы НЕ занимаемся "продажей аудитории" инвесторам или третьим лицам;
- Мы НЕ шлем ваши данные в АПИ корпораций или компаний, аффилированных с олигархическими структурами;
- Мы НЕ присваиваем себе чужих достижений, все наработки наши собственные;
Безопасность и ограничения
Ограничение 20 мегабайт на файл для Телеграма мы не стали снимать, потому что в нормальном аудио формате в 20 мегабайт можно уместить достаточно длинное аудио для данного UX-сценария и повторюсь, что есть отдельный сервис для "длинных" аудио, который будет развиваться отдельно. С точки зрения удобства пользователя странно в мессенджере решать десктопные юзкейсы.
У каждого пользователя есть лимит, мы блокируем ботов и пресекаем нецелевое использование доступными нам методами.
Мы полностью шифруем весь трафик и данные. Мы не "дарим" ваши персональные данные корпорациям или олигархическим (или аффилированным с ними) структурам.
Дальнейшее развитие
Так же, как и наше решение для транскрибации длинных файлов, мы будем развивать и улучшать наше решение, если оно будет полезно народу. В каком-то смысле судьба бота и наличие независимого инструмента в ваших руках.
Мы постарались сделать все по красоте, но если будут какие-то баги и проблемы, мы будем благодарны комьюнити за помощь. В первое время возможны небольшие перебои с работой при раскатке фиксов, но мы надеемся, что мы уже отладили 95% всех краевых случаев, а оставшиеся 5% можно будет быстро поправить или понять и простить.
Обновления по горячим следам
- FAQ с самыми актуальными вопросами для тех, но не нашел его в самом телеграме — https://habr.com/ru/post/591563/#comment_23749573
- Важно — я настроил вроде бота, чтобы его не нужно было делать админом в группе (пишите в комментариях или в личку про свой опыт)
- Важное обновление — баг с "затором" в боте пофикшен
- Остался баг с пересылкой файлов с мобильных клиентов и / или из вотсаппа и / или из музыкальной библиотеки телеграма.
Обновления по горячим следам 2
- Баг с пересылкой файлов пофиксили, все оказалось проще — дело было в отсутствующем MIME-типе;
- Еще раз пофиксили баги с заторами, вроде дело было в том, что если ответить 500 телеге, то она начинает копить сообщения, и потом это приводит к затору;
- Навесили try/catch в несколько ключевых мест;
Комментарии (56)
Balmer57
25.11.2021 16:54+1А почему бот не имеет доступа к сообщениям по умолчанию? Это какое-то принципиальное решение?
Если добавить его в группу и сделать админом будет тот же эффект, вот только не во всех группах такое возможно, например в обычных, а не "супергруппах", т.к. в этом случае при назначении админа группа автоматически конвертируется, а это нежелательный эффект.snakers4 Автор
25.11.2021 16:57Если я все верно понимаю, то это решение архитекторов телеграма
Насчет групп и супер-групп я помню, что когда их вводили, вроде для обычных кейсов разницы между ними особой не было
Balmer57
25.11.2021 17:09+1Это можно сконфигурировать у
@Botfather
:/mybots
-(bot)
-Bot Settings
-Group Privacy
-Turn off
После этого нужно передобавить бота в чат, чтобы обновились настройки.
Для обычных кейсов разницы, действительно, почти нет, но некоторые нюансы различаются (хранение истории, доступ к ней, отсутствие админских логов, возможность писать у некоторых пользователей...)snakers4 Автор
25.11.2021 17:41Уточню у коллег, кто лучше с телеграмом разбирается, есть ли какие-то последствия другие
Пока вижу только то, что в теории так доступ к аудио бот может получить без явного согласия администратора группы, что наверное не факт что хорошо
pythoned195
25.11.2021 16:59+2Так , про сбор голосов для создания на их базе дипфейков для взятия кредитов по биометрии в сбере указан ?
Нет , так и запишем - занимаемся.
А если серьезно - спасибо , буду пользоваться , полезная штука , если не тяжело - подскажите где гелия подешевле купитьsnakers4 Автор
25.11.2021 17:03Качественный голос мы как правило можем сделать даже на 15 минутах аудио, но при совпадении звезд:
- Качество должно приближаться к идеальному или студийному;
- Голос должен быть похож на имеющиеся;
- Голос должен быть "ровным";
То, при каких обстоятельствах и как люди обычно записывают голосовые сообщения + тот факт, что мы не сохраняем кто послал нам какое именно аудио, делают массовое создание голосов пользователей уже совсем научной фантастикой, даже если бы мы хотели этим зачем-то заниматься.
snakers4 Автор
25.11.2021 17:07+2Вот послушайте голос меня, который мои коллеги сделали, чтобы меня потроллить после нашего недельного созвона. Меня можно узнать, но звучит мягко говоря не очень, как будто говорю в ведро.
mihmig
25.11.2021 17:24+1Подскажите, (может это уже где-то реализовано)
можно ли скинуть ссылку на подкаст и, через необязательно короткое время получить текстовую расшифровку?
Бывает часовой подкаст, а ценного там - на пару фраз... Глазами быстрее пробежать.snakers4 Автор
25.11.2021 17:40+1Насчет ссылки не видел, не знаю, писать и поддерживать бесконечные парсеры тоже себе такое занятие.
Но если вы сами скачаете аудио, можно попробовать залить сюда — https://audio-v-text.silero.ai/
Одна беда, туда пока еще не встроили последний VAD и модель для знаков препинания и заглавных букв
ACKONI
25.11.2021 17:48+1Переслал сообщение из ватсап, телеграмм его воспроизводит, но бот говорит что формат файла не поддерживается
snakers4 Автор
25.11.2021 17:49Просто перешлите нам этот аудио файл в телегаме, мы посмотрим в чем дело
Мы уже нашли один краевой кейс с онлайн-конвертилками видео на YouTube
Там мешанина из разных форматов / mime-типов и кодеков
Соберем какое-то число таких кейсов, отладим
snakers4 Автор
25.11.2021 19:03+2Понятно, почему у некоторых юзеров проблемы
- Люди часто качают якобы MP3 через онлайн конвертеры, там по факту MP4;
- Люди сначала добавляют бота в чат, а не начинают сначала с ним лично общаться несмотря на инструкцию;
Обновил и дополнил FAQ, выложу его сюда в том числе для индексации:
Самый популярный вопрос — возникают проблемы при добавлении бота в группу (иногда юзеры проходят капчу в группе).
Убедитесь, что вы сначала ввели команду /start и прошли капчу при прямом общении с ботом, а не через группу или другого бота. Для верности можно пойти к боту напрямую, сделать /restart, ввести капчу, удалить и вернуть бота в группу. После этого должно заработать.
У меня ничего не происходит при отправке файлов боту.
Убедитесь, что вы сначала ввели команду /start и прошли капчу. Если вы не уверены в этом, попробуйте сделать /restart, потом /start и пройти капчу.
Бот не работает в групповом чате.
Убедитесь, что вы не только лично прошли капчу и добавили его, но и сделали его администратором. Иначе он не cможет читать сообщения. Поправка — после настроек это перестало быть нужным. Также в телеграме теперь напротив имени бота в чате явно отображается может ли он читать сообщения.
У меня не работает интерактивная разметка аудио для навигации.
Она работает только в некоторых приложениях (десктоп) и только для некоторых форматов файлов (например opus или ogg+opus).
В групповом чате ничего не происходит, когда я посылаю аудио.
В чатах мы не шлем сообщения с ошибками, чтобы не захламлять пространство. Попробуйте послать тот же файл напрямую.
Я послал файл, но ничего не происходит.
Возможно на данный момент очередь переполнилась. По достижении определенного порога мы удаляем старые запросы, чтобы очередь не застаивалась. Возможно это какой-то редкий краевой случай (такое часто возникает при использовании онлайн-конвертеров). Перешлите файл нам напрямую, мы разберемся.
Бот распознает совсем не то.
Распознавание речи не бывает на 100% точным. Но если вы видите, что это очевидно ошибка и что-то пошло не так при обработке файла, просто напишите нам.
Мой формат аудио не поддерживается, файл слишком большой или длинный.
В таком случае попробуйте воспользоваться сервисом https://audio-v-text.silero.ai/.
Высказывания не оптимально разбиты на смысловые куски или неправильно проставлены знаки препинания.
В устной речи всё работает несколько иначе, чем в письменной. Если человек делает относительно длинные паузы в местах, не соответствующих смысловому разделению его речи на части, или просто запинается, с этим нельзя ничего поделать.
Неправильно проставлены знаки препинания.
Расстановка знаков препинания и заглавных букв делается только для упрощения чтения.
Неправильно обрабатываются числительные, даты, цифры, сокращения, аббревиатуры.
Невозможно обработать все случаи в естественном языке. Но если на ваш взгляд какой-то очень массовый и важный кейс обрабатывается неверно — напишите нам напрямую.
Прочие краевые случаи.
Известные случаи, когда аудио распознается хуже: музыка или рэп; обилие редких слов, неологизмов и жаргонизмов; крик или разговоры на повышенных тонах; речь с очень сильным акцентом; разговор на смеси нескольких языков; несколько людей говорят одновременно или перебивают друг друга.
У меня кончился лимит.
Лимит обновляется раз в сутки.
snakers4 Автор
26.11.2021 16:08Важное обновление — баг с "затором" в боте пофикшен.
Остался баг с пересылкой файлов с мобильных клиентов и / или из вотсаппа и / или из музыкальной библиотеки телеграма.snakers4 Автор
27.11.2021 14:16Обновления по горячим следам 2
Баг с пересылкой файлов пофиксили, все оказалось проще — дело было в отсутствующем MIME-типе;
Еще раз пофиксили баги с заторами, вроде дело было в том, что если ответить 500 телеге, то она начинает копить сообщения, и потом это приводит к затору;
Навесили try/catch в несколько ключевых мест;
Two_Sheds
25.11.2021 20:37+1Решил немного пощупать бот.
Установил тестовую версию Aiseesoft Screen Recorder.
Попробовал начитать коротенькие отрывки из Туве Янсон.
Увы, бот пока угадывает в среднем два слова из трех.
Вот типичный результат:Глубоко в сугроде, прикрывавшим ход в пещеру. Кто-то постелил Солон? На салоне стояла большая картонная коробка. Отверстия. Вот чудно удивился бельчонок. Прежде этой картинки здесь не было. Должно быть? Тут какая-то ошибка. Может, это совсем не та пища?
Статье всё равно ставлю плюс, за полезность начинания.
snakers4 Автор
25.11.2021 20:49Ну выглядит вполне сносно. На мой взгляд (я не слышал оригинальное аудио) — тут процент ошибок в словах в районе 20%-25% из-за имен собственных.
sunsexsurf
26.11.2021 00:11+2А можете рассказать поподробнее - что внутри? Какие нейронки? Мы поднимали похожего бота на vosk.
snakers4 Автор
26.11.2021 00:16VAD и модель для капитализации например выложены в наших проектах silero-models и silero-vad.
Остальное - не публично.
mbait
26.11.2021 07:52+1Работает хуже, чем встроенное распознавание от Гугла на Android, зачем-то разбивает даже короткие фразы на отдельные предложения. После прочтения статьи сразу появилась идея использовать как замена Google Keyboard на телефоне с LineageOS и OpenGapps, но быстрый тест показал, что пока ещё нельзя.
snakers4 Автор
26.11.2021 08:14Насчёт Гугла - я более менее уверен что их распознавание на русском в среднем хуже на всех доменах, но скорее всего оно лучше зафичено именно на частые данные пользователей которые вы ему дарите.
Насчёт разделения - ну делит речь по заметным паузам. Я запустил их приложение для заметок - оно тоже делит по паузам.
Но я не совсем понимаю как бот для заметок или сообщений может заменить клавиатуру, у него совсем другая цель и допущения.
mbait
26.11.2021 08:22+1Чем короткие заметки отличаются от сообщений, надиктованных на голосовой клавиатуре? Кстати, ещё одна особенность - если переслать сообщение, то временные метки не работают (не подсвечиваются как ссылки), даже если переслать и текст, и аудио. Это ограничение платформы?
snakers4 Автор
26.11.2021 08:45Подсветка кодов у самой телеги как-то странно работает, зависит от формата аудио и платформы.
Насчет заметок - использование клавиатуры может сильнее модулировать поведение людей, чем кажется. Подразумевается что типовой сценарий у нас это когда люди просто свободно что-то говорят.
Та же клавиатура будучи нативным приложением на подконтрольной платформе имеет сильно больше оптимизаций чисто с визуальной точки зрения.
Beatle
26.11.2021 11:16+1Блин, по распознаванию типичной записи телефонного звонка - очень фигово конечно.
Если другие примерно так же до сих пор - мечты об автоконтроле операторов более менее работающем - преждевременны походу у меня :)snakers4 Автор
26.11.2021 11:19С телефонными звонками между двумя звонками разница может быть плюс-минус километр по качеству и отчетливости связи.
Так что я даже хз что тут сказать. Чтобы это работало как продукт на звонках, требуется некая работа со стороны телефонистов и бизнеса.
Могу привести пример из такси — там у нас WER < 10%, но там телефонисты сделали свою работу и там простой сценарий и модель доучили на нужный домен.
Beatle
26.11.2021 11:29у нас задача шире - "очень много разных доменов", выполнение не больших задач по несколько тысяч контактов для совершенно разного малого\микро бизнеса
ZaitsXL
26.11.2021 12:01+1что только не выдумают, лишь бы не пользоваться встроенным в телефон распознаванием речи
avdosev
26.11.2021 15:06+1Насколько большая нагрузка на сервер из-за относительно массового использования бота и кто так сказать оплачивает банкет?
snakers4 Автор
26.11.2021 15:25+1Если вынести за скобки тот факт, что в боте сейчас есть пара тупых багов (банально забыли try-catch в паре мест при обращении к АПИ телеги — оно еще тормозит немного при ошибке и копится немного как снежный ком), которые в совокупности с тем, что очереди делают retry, где-то в районе обеда породили "затор" (я пока временно просто перезапустил бота пока не пофиксили), то на самом деле одновременно и не так мало и не так много. Что меня удивило — использование бота также породило бурный интерес к инструменту для длинных аудио.
По статистике с начала этих суток (а вчера мы сами много трафика слали для тестирования) было где-то по 20,000 нормализованных по длине запросов и в телеграм бота, и в онлайн-бота на нашем сайте. То есть суммарно около 40,000. Затор думаю "убил" процентов 5-10% потенциального трафика. Думаю за сутки будет ну в районе 60к — 75к запросов. Ну может 100к, если ночью народ проснется опять на третью волну.
И, обратите внимание (!), это все на фоне отсутствия фичеринга нашего решения со стороны СМИ то есть весь трафик органический из наших каналов, статей, Хабра.
А насчет банкета — мы просто грамотно спроектировали архитектуру. У нас есть в обоих этих инструментах очереди и инструменты управления concurrency и некоторые "затычки" на случай слишком большого трафика (но мы конечно словили проблемы, но уже из-за других причин). Поэтому де-факто я смог повесить этих ботов на STT сервак с другим нашим проектом, и они почти даже не толкаются руками. Я наверное потом понижу уровень concurrency в боте для телеги, после того как пофиксим оставшиеся проблемы (в самые пиковые моменты толкаются немного).
Я, конечно, после чтения комментариев на VC.ru и нахождения затора приуныл, но потом мы нашли его причину, мне написало в личку много людей с благодарностями, и настроение поднялось.
shukshinivan
26.11.2021 15:38+1А какой хоть примерно лимит? Ну, чтобы понять, для чего вообще может быть это интересно, кроме попробовать послать пару файлов и забыть :)
snakers4 Автор
26.11.2021 15:42Лимит на юзера в сутки
У сервиса для длинных файлов просто на сайте написано какой лимит (это меняется иногда)
У бота лимит тоже есть, мы не афишируем его точное значение, чтобы не аггрить людей
Но его достаточно для нормального использования
Vinchi
27.11.2021 22:51Закинул сразу голосовое сообщение телеги на полторы минуты, ответил что слишком длинное так как превышает лимит в 1200 секунд. Короче бот не работает.
snakers4 Автор
28.11.2021 07:26Я только что сделал то же самое, у меня все работает. Если есть желание разобраться что не работает, пишите в личку.
Именно эту ошибка сейчас выводится в том числе когда формат аудио какой-то кривой или битый.
Elsajalee
Это фича была бы крайне полезна уже встроенной в мессенджеры. Чтобы под голосовым сообщением появлялся toggle "речь в текст". А иногда ещё и перевод. p.s. В некоторых случаях "с русского на русский" :)
snakers4 Автор
Одна из основных UX фишек бота состоит в том, что если его добавить в группу, то он будет распознавать все аудио в этой группе.
А насчет самих мессенджеров — я думаю, что рано или поздно все приложения работающие с "богатыми" форматами данных научатся делать с ними что-то полезное, но это будет процесс долгий и итерационный.
Есть только риск так называемого "research siloing", когда корпорации стремятся де-факто иметь монополию на алгоритмы (на фоне видимой "открытости"). Но для этого и нужны такие люди как мы.
А то зачастую в самых свободных местах свободы почему-то очень мало. За нее всегда нужно бороться.
Elsajalee
Я просто про желаемый UI написал, даже без отношения к Telegram.
Правильно понимаю: вы делаете open source, допустимо для коммерческого использования и всё с обученными моделями?
snakers4 Автор
Я бы сформулировал иначе — все, что для коммерческого использования идет по коммерческим условиям.
Но часть вещей выложены для общего или некоммерческого использования, например те же боты для обычных пользователей, публичные модели синтеза или тот же VAD.
У каждого продукта своя логика разделения на открытую и коммерческую части.
tgx
Откуда это выражение?
snakers4 Автор
Откуда оно пошло не знаю, но используется в связи с накоплением знаний кем-то и построением "стены" вокруг этих знаний
domix32
Было бы неплохо сделать возможность триггерить бота на реплай с командой, тогда не придется процессить все звуки.
snakers4 Автор
это потребует хранения состояния в настройках пользователя
пока хотелось бы оставить все максимально простым — хочешь используешь как бота напрямую
хочешь — добавляешь в группу
это по сути смесь сценариев, бот вроде и в группе, но триггерится руками
vrnvorona
А из лички переслать боту аудио можно?
snakers4 Автор
Почему нет
efcadu
Возможно, недолго ждать осталось. Whatsapp уже пилит такую фичу: https://wabetainfo.com/whatsapp-is-working-on-voice-message-transcription/