Как стать автором
Обновить

Комментарии 56

Это фича была бы крайне полезна уже встроенной в мессенджеры. Чтобы под голосовым сообщением появлялся toggle "речь в текст". А иногда ещё и перевод. p.s. В некоторых случаях "с русского на русский" :)

Одна из основных UX фишек бота состоит в том, что если его добавить в группу, то он будет распознавать все аудио в этой группе.


А насчет самих мессенджеров — я думаю, что рано или поздно все приложения работающие с "богатыми" форматами данных научатся делать с ними что-то полезное, но это будет процесс долгий и итерационный.


Есть только риск так называемого "research siloing", когда корпорации стремятся де-факто иметь монополию на алгоритмы (на фоне видимой "открытости"). Но для этого и нужны такие люди как мы.


А то зачастую в самых свободных местах свободы почему-то очень мало. За нее всегда нужно бороться.

Я просто про желаемый UI написал, даже без отношения к Telegram.

Правильно понимаю: вы делаете open source, допустимо для коммерческого использования и всё с обученными моделями?

Я бы сформулировал иначе — все, что для коммерческого использования идет по коммерческим условиям.


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


У каждого продукта своя логика разделения на открытую и коммерческую части.

research siloing

Откуда это выражение?

Откуда оно пошло не знаю, но используется в связи с накоплением знаний кем-то и построением "стены" вокруг этих знаний

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

это потребует хранения состояния в настройках пользователя
пока хотелось бы оставить все максимально простым — хочешь используешь как бота напрямую
хочешь — добавляешь в группу


это по сути смесь сценариев, бот вроде и в группе, но триггерится руками

А из лички переслать боту аудио можно?

Почему нет

да вы же натуральные боженьки. это то, чего я хотел все эти долгие годы.

А почему бот не имеет доступа к сообщениям по умолчанию? Это какое-то принципиальное решение?
Если добавить его в группу и сделать админом будет тот же эффект, вот только не во всех группах такое возможно, например в обычных, а не "супергруппах", т.к. в этом случае при назначении админа группа автоматически конвертируется, а это нежелательный эффект.

Если я все верно понимаю, то это решение архитекторов телеграма


Насчет групп и супер-групп я помню, что когда их вводили, вроде для обычных кейсов разницы между ними особой не было

Это можно сконфигурировать у @Botfather: /mybots - (bot) - Bot Settings - Group Privacy - Turn off После этого нужно передобавить бота в чат, чтобы обновились настройки.

Для обычных кейсов разницы, действительно, почти нет, но некоторые нюансы различаются (хранение истории, доступ к ней, отсутствие админских логов, возможность писать у некоторых пользователей...)

Уточню у коллег, кто лучше с телеграмом разбирается, есть ли какие-то последствия другие


Пока вижу только то, что в теории так доступ к аудио бот может получить без явного согласия администратора группы, что наверное не факт что хорошо

Botfather: /mybots — (bot) — Bot Settings — Group Privacy — Turn off

Я попробовал это сделать, вроде работает
Пока не понимаем, какие последствия это может вызвать

Так , про сбор голосов для создания на их базе дипфейков для взятия кредитов по биометрии в сбере указан ?
Нет , так и запишем - занимаемся.
А если серьезно - спасибо , буду пользоваться , полезная штука , если не тяжело - подскажите где гелия подешевле купить

Качественный голос мы как правило можем сделать даже на 15 минутах аудио, но при совпадении звезд:


  • Качество должно приближаться к идеальному или студийному;
  • Голос должен быть похож на имеющиеся;
  • Голос должен быть "ровным";

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

Вот послушайте голос меня, который мои коллеги сделали, чтобы меня потроллить после нашего недельного созвона. Меня можно узнать, но звучит мягко говоря не очень, как будто говорю в ведро.


Интересно как оно на картавых реагирует.

картавый инпут = картавый аутпут
но больше шума и кривизны

Подскажите, (может это уже где-то реализовано)
можно ли скинуть ссылку на подкаст и, через необязательно короткое время получить текстовую расшифровку?

Бывает часовой подкаст, а ценного там - на пару фраз... Глазами быстрее пробежать.

Насчет ссылки не видел, не знаю, писать и поддерживать бесконечные парсеры тоже себе такое занятие.


Но если вы сами скачаете аудио, можно попробовать залить сюда — https://audio-v-text.silero.ai/


Одна беда, туда пока еще не встроили последний VAD и модель для знаков препинания и заглавных букв

Переслал сообщение из ватсап, телеграмм его воспроизводит, но бот говорит что формат файла не поддерживается

Просто перешлите нам этот аудио файл в телегаме, мы посмотрим в чем дело
Мы уже нашли один краевой кейс с онлайн-конвертилками видео на YouTube
Там мешанина из разных форматов / mime-типов и кодеков
Соберем какое-то число таких кейсов, отладим

Понятно, почему у некоторых юзеров проблемы


  • Люди часто качают якобы MP3 через онлайн конвертеры, там по факту MP4;
  • Люди сначала добавляют бота в чат, а не начинают сначала с ним лично общаться несмотря на инструкцию;

Обновил и дополнил FAQ, выложу его сюда в том числе для индексации:


Самый популярный вопрос — возникают проблемы при добавлении бота в группу (иногда юзеры проходят капчу в группе).


Убедитесь, что вы сначала ввели команду /start и прошли капчу при прямом общении с ботом, а не через группу или другого бота. Для верности можно пойти к боту напрямую, сделать /restart, ввести капчу, удалить и вернуть бота в группу. После этого должно заработать.


У меня ничего не происходит при отправке файлов боту.


Убедитесь, что вы сначала ввели команду /start и прошли капчу. Если вы не уверены в этом, попробуйте сделать /restart, потом /start и пройти капчу.


Бот не работает в групповом чате.


Убедитесь, что вы не только лично прошли капчу и добавили его, но и сделали его администратором. Иначе он не cможет читать сообщения. Поправка — после настроек это перестало быть нужным. Также в телеграме теперь напротив имени бота в чате явно отображается может ли он читать сообщения.


У меня не работает интерактивная разметка аудио для навигации.


Она работает только в некоторых приложениях (десктоп) и только для некоторых форматов файлов (например opus или ogg+opus).


В групповом чате ничего не происходит, когда я посылаю аудио.


В чатах мы не шлем сообщения с ошибками, чтобы не захламлять пространство. Попробуйте послать тот же файл напрямую.


Я послал файл, но ничего не происходит.


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


Бот распознает совсем не то.


Распознавание речи не бывает на 100% точным. Но если вы видите, что это очевидно ошибка и что-то пошло не так при обработке файла, просто напишите нам.


Мой формат аудио не поддерживается, файл слишком большой или длинный.


В таком случае попробуйте воспользоваться сервисом https://audio-v-text.silero.ai/.


Высказывания не оптимально разбиты на смысловые куски или неправильно проставлены знаки препинания.


В устной речи всё работает несколько иначе, чем в письменной. Если человек делает относительно длинные паузы в местах, не соответствующих смысловому разделению его речи на части, или просто запинается, с этим нельзя ничего поделать.


Неправильно проставлены знаки препинания.


Расстановка знаков препинания и заглавных букв делается только для упрощения чтения.


Неправильно обрабатываются числительные, даты, цифры, сокращения, аббревиатуры.


Невозможно обработать все случаи в естественном языке. Но если на ваш взгляд какой-то очень массовый и важный кейс обрабатывается неверно — напишите нам напрямую.


Прочие краевые случаи.


Известные случаи, когда аудио распознается хуже: музыка или рэп; обилие редких слов, неологизмов и жаргонизмов; крик или разговоры на повышенных тонах; речь с очень сильным акцентом; разговор на смеси нескольких языков; несколько людей говорят одновременно или перебивают друг друга.


У меня кончился лимит.


Лимит обновляется раз в сутки.

Важное обновление — баг с "затором" в боте пофикшен.
Остался баг с пересылкой файлов с мобильных клиентов и / или из вотсаппа и / или из музыкальной библиотеки телеграма.

Обновления по горячим следам 2


Баг с пересылкой файлов пофиксили, все оказалось проще — дело было в отсутствующем MIME-типе;
Еще раз пофиксили баги с заторами, вроде дело было в том, что если ответить 500 телеге, то она начинает копить сообщения, и потом это приводит к затору;
Навесили try/catch в несколько ключевых мест;

Решил немного пощупать бот.

Установил тестовую версию Aiseesoft Screen Recorder.

Попробовал начитать коротенькие отрывки из Туве Янсон.
Увы, бот пока угадывает в среднем два слова из трех.
Вот типичный результат:

Глубоко в сугроде, прикрывавшим ход в пещеру. Кто-то постелил Солон? На салоне стояла большая картонная коробка. Отверстия. Вот чудно удивился бельчонок. Прежде этой картинки здесь не было. Должно быть? Тут какая-то ошибка. Может, это совсем не та пища?

Статье всё равно ставлю плюс, за полезность начинания.

Ну выглядит вполне сносно. На мой взгляд (я не слышал оригинальное аудио) — тут процент ошибок в словах в районе 20%-25% из-за имен собственных.

А можете рассказать поподробнее - что внутри? Какие нейронки? Мы поднимали похожего бота на vosk.

VAD и модель для капитализации например выложены в наших проектах silero-models и silero-vad.

Остальное - не публично.

Работает хуже, чем встроенное распознавание от Гугла на Android, зачем-то разбивает даже короткие фразы на отдельные предложения. После прочтения статьи сразу появилась идея использовать как замена Google Keyboard на телефоне с LineageOS и OpenGapps, но быстрый тест показал, что пока ещё нельзя.

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

Насчёт разделения - ну делит речь по заметным паузам. Я запустил их приложение для заметок - оно тоже делит по паузам.

Но я не совсем понимаю как бот для заметок или сообщений может заменить клавиатуру, у него совсем другая цель и допущения.

Чем короткие заметки отличаются от сообщений, надиктованных на голосовой клавиатуре? Кстати, ещё одна особенность - если переслать сообщение, то временные метки не работают (не подсвечиваются как ссылки), даже если переслать и текст, и аудио. Это ограничение платформы?

Подсветка кодов у самой телеги как-то странно работает, зависит от формата аудио и платформы.

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

Та же клавиатура будучи нативным приложением на подконтрольной платформе имеет сильно больше оптимизаций чисто с визуальной точки зрения.

Блин, по распознаванию типичной записи телефонного звонка - очень фигово конечно.
Если другие примерно так же до сих пор - мечты об автоконтроле операторов более менее работающем - преждевременны походу у меня :)

С телефонными звонками между двумя звонками разница может быть плюс-минус километр по качеству и отчетливости связи.


Так что я даже хз что тут сказать. Чтобы это работало как продукт на звонках, требуется некая работа со стороны телефонистов и бизнеса.


Могу привести пример из такси — там у нас WER < 10%, но там телефонисты сделали свою работу и там простой сценарий и модель доучили на нужный домен.

у нас задача шире - "очень много разных доменов", выполнение не больших задач по несколько тысяч контактов для совершенно разного малого\микро бизнеса

Еще бы поддержку формата amr - он минимален по объему и в нем пишут обычные телефонные диктофоны.

А можете в личку просто ваш файл прислать в телеграме, мы просто посмотрим что наш каскад библитек с ним сделает

что только не выдумают, лишь бы не пользоваться встроенным в телефон распознаванием речи

Точно! Я десятки собеседников в рабочих чатах на распознавание на клавиатуре склонял, но они "не выдумывают". Хорошо, что один рабочий чат в телеге, с этим ботом реально легче.

слать голосовые сообщения в рабочем чате это еще и невежливо

Насколько большая нагрузка на сервер из-за относительно массового использования бота и кто так сказать оплачивает банкет?

Если вынести за скобки тот факт, что в боте сейчас есть пара тупых багов (банально забыли try-catch в паре мест при обращении к АПИ телеги — оно еще тормозит немного при ошибке и копится немного как снежный ком), которые в совокупности с тем, что очереди делают retry, где-то в районе обеда породили "затор" (я пока временно просто перезапустил бота пока не пофиксили), то на самом деле одновременно и не так мало и не так много. Что меня удивило — использование бота также породило бурный интерес к инструменту для длинных аудио.


По статистике с начала этих суток (а вчера мы сами много трафика слали для тестирования) было где-то по 20,000 нормализованных по длине запросов и в телеграм бота, и в онлайн-бота на нашем сайте. То есть суммарно около 40,000. Затор думаю "убил" процентов 5-10% потенциального трафика. Думаю за сутки будет ну в районе 60к — 75к запросов. Ну может 100к, если ночью народ проснется опять на третью волну.


И, обратите внимание (!), это все на фоне отсутствия фичеринга нашего решения со стороны СМИ то есть весь трафик органический из наших каналов, статей, Хабра.


А насчет банкета — мы просто грамотно спроектировали архитектуру. У нас есть в обоих этих инструментах очереди и инструменты управления concurrency и некоторые "затычки" на случай слишком большого трафика (но мы конечно словили проблемы, но уже из-за других причин). Поэтому де-факто я смог повесить этих ботов на STT сервак с другим нашим проектом, и они почти даже не толкаются руками. Я наверное потом понижу уровень concurrency в боте для телеги, после того как пофиксим оставшиеся проблемы (в самые пиковые моменты толкаются немного).


Я, конечно, после чтения комментариев на VC.ru и нахождения затора приуныл, но потом мы нашли его причину, мне написало в личку много людей с благодарностями, и настроение поднялось.

Спасибо, а на чем бот написан если не секрет, Python?

Да

Эх, где вы были, когда я расшифровку своей кандидатской защиты писал...

А какой хоть примерно лимит? Ну, чтобы понять, для чего вообще может быть это интересно, кроме попробовать послать пару файлов и забыть :)

Лимит на юзера в сутки
У сервиса для длинных файлов просто на сайте написано какой лимит (это меняется иногда)
У бота лимит тоже есть, мы не афишируем его точное значение, чтобы не аггрить людей
Но его достаточно для нормального использования

Закинул сразу голосовое сообщение телеги на полторы минуты, ответил что слишком длинное так как превышает лимит в 1200 секунд. Короче бот не работает.

Я только что сделал то же самое, у меня все работает. Если есть желание разобраться что не работает, пишите в личку.

Именно эту ошибка сейчас выводится в том числе когда формат аудио какой-то кривой или битый.

Возможно ли добавить бота в личный диалог?

Мне кажется в диалоге 1-на-1 в телеграме в принципе возможно только использование inline ботов.

А они в принципе принимают только текстовый вход.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации