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

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

Аплодирую стоя! Всегда интересно узнать, с какими проблемами сталкивались, как решали, как менялись подходы в процессе.
Планируется ли поддержка Голосовой активации в SpeechKit Cloud в каком-либо виде?
Уточните, что именно вы понимаете под этим?
Модуль, который бы реализовывал подобный функционал — слушать эфир на наличие команды на клиенте без постоянного взаимодействия с сервером. Не только в mobile sdk, но и, например, в виде подключаемой библиотеки. Сейчас в Cloud API есть потоковое распознавание, но это не совсем то.
Голосовая активация — это модуль, который постоянно «слушает эфир» и реагирует на ключевую фразу. То есть, для нее нужно а) постоянно отсылать звук и б) реализовать VAD и keyword spotting. И если второй момент — не проблема для веб-сервиса (более того, keyword spotting планируется реализовать в облаке), то с первым будут явные проблемы.
Про первый момент как раз написано в статье
Во-первых, распознавание команды должно происходить на самом устройстве, без обращения к серверу.


Вот именно этот функционал и хотелось бы иметь в виде отдельного модуля. Ведь распознавание применимо не только в вебе.
Если вы имеете ввиду полноценное встроенное распознавание речи на устройстве — то это весьма сложная задача, учитывая размеры моделей и ресурсы, требуемые для распознавания в реальном времени. Но мы над этим работаем.

Мы сейчас говорим о мобильных устройствах, или о десктопе?
«Короче, яндекс»
А появится ли в Yandex.store?
Да, там Диктовка уже есть.
Извиняюсь, что-то не получается найти со своего смартфона сейчас.
А Вы не думали сделать нечто подобное но в виде веб сервиса, что бы работало и на обычных компьютерах, а не только на мобильных устройствах?

Например, новый сервис яндекса, как дополнение к почте — Голосовой блокнот — открыл его, надиктовал, сохранил записочку, на мой взгляд, было бы удобно.
Во-во, для ПК это даже более актуально!
Вы имеете ввиду что-то типа этого? webasr.yandex.net (! это прототип)
Festival Text-to-Speech Online Demo — Technical и голоса в секции «HMM-based method»

Третий основной компонент речевой технологии — это синтез речи (text-to-speech). TTS-решение SpeechKit позволяет озвучить любой текст мужским или женским голосом, да ещё и задав нужную эмоцию. Ни у одного из известных нам голосовых движков на рынке нет такой возможности.

В SpeechKit мы решили использовать статистический (параметрический) синтез речи на базе скрытых Марковских моделей. Процесс, по сути, аналогичен распознаванию, только происходит в обратном направлении.


Ну да, конечно) Это технологии 2010-11 года. Маркетинг, такой маркетинг!

Вы бы не дезинформировали людей о том что синтез речи на базе скрытых Марковских моделей есть только у вас. Есть публикации про HMM и голосовые модели для open source TTS festival
Речь не о синтезе на базе СММ (технология действительно стандартная), а о придании синтезу эмоционального звучания.
organisation, adress? парле ву франсе?
НЛО прилетело и опубликовало эту надпись здесь
Минусятору поясняю, что в работе с языковыми технологиями хотелось бы видеть грамотность, по английски правильно будет organization, address
image
Organisation — норма в британском английском. Про address вы правы, спасибо.
fixed
Отличные новости!
К сожалению только, модель голосовой активации приходится заказывать у вас… В том же Sensory TrulyHandsfree разработчик настраивает модель самостоятельно. Так что пока это сильно тормозит процесс внедрения Яндекс распознавания в проект… Не планируете что-то с этим делать?? А то вот например мне уже больше недели не отвечаете на запрос модели ))

Также есть вопросы по самой активации. В Яндекс Диктовке она пока показывает средние результаты — может легко активироваться на посторонние слова и фразы… Все же нужен инструмент для более тщательной настройки… Sensory в этом вопросе сделали довольно удобный вариант, как мне кажется.

Относительно API — ребята, сделайте пожалуйста хотя бы для того же Android "низкоуровневое" API (я не имею в виду C), где звуковой поток бы забирала не ваша собственная абстракция, а код приложения. Чтобы можно было «безшовно» отдавать поток сперва в активацию, а потом — сразу в модуль распозанвания. Иначе время на освобождение аудио рекордера плюс время на установку соединения с сервером распознавания не позволяет строить распознавания в стиле «Окей гугл», когда пользователь может слитно, без паузы произнести и активацию, и саму команду…
А то вот например мне уже больше недели не отвечаете на запрос модели ))
Очень жаль, что заставили вас так долго ждать — скоро мы наконец-то пришлём вам модель. К сожалению, пока это единственный способ получить модель для голосовой активации. Сейчас мы работаем над сервисом для автоматического построения модели — следите за новостями) В нём кроме непосредственно создания модели будет оценка количества ложных срабатываний, которая поможет подобрать оптимальный набор команд.
Sensory в этом вопросе сделали довольно удобный вариант, как мне кажется.
Спасибо, посмотрим.
Относительно API...
Да, это отличная идея. Мы планируем в скором времени добавить согласованности в работу компонентов SpeechKit'a, чтобы не приходилось синхронизировать управление аудио ресурсами вручную, была возможность сделать «бесшовный» переход, о котором вы писали.
Это отлично! Но если вы готовы реализовать полноценную связь между всеми компонентами системы, то неплохо было бы также реализовать и что-то наподобие технологии bridge из nuance vocon. Думаю вы понимаете, о чем это, но я все же поясню.

Это механизм, «отсекающий» речь синтезатора из звукового потока с тем, чтобы пользователь мог использовать голосовую активацию и в момент, когда говорит синтезатор. Другими словами, система слушает микрофон устройства и в процессе воспроизведения текста синтезатором и выделяет из потока то, что произносит пользователь. Что думаете?
ИМХО, тут надо б отсекать всё, что идёт через динамик, а не только синтезированный текст…
Нет, отсечь все что идет через динамик технически невозможно хотя бы потому, что у стороннего приложения на том же андроиде нет данных о том, что сейчас идет через динамик. А если это синтезатор самой системы, производящей распознавание и синтез — то такая возможность есть, так как система знает, что она сейчас произносит.
а подавление эха в телефоном модуле не встроено на аппаратном уровне звуковой подсистемы?
Это интересная задача, мы о ней думали. На качество звука, получившегося после отсечения, будет влиять много непредсказуемых параметров — реверберация, помехи и задержки микрофона и динамика, и это будет ухудшать качество распознавания. Может быть, мы ей займёмся когда-нибудь, но не в ближайшее время.
примерно сюда же — шумоподавление. Пробовал в метро подиктовать — ничего не слышит. (
Ок, понятно… В этом плане nuance vocon довольно неплохо решил эту задачу. Там правда нужно проделать много возни с настройкой (то о чем вы говорите) под конкретный аппарат и тп. Но там это позволяет sdk…
Да, и еще хотел задать вопрос насчет функции «выделения смысловых объектов». В вашем «слайдовом» примере вы показали поиск сущностей типа «command» или «organization», что не совсем соответствует действительности? Ведь сейчас сервис не поддерживает поиск такого типа сущностей? Я к тому, а не планируете ли вы дать пользователям возможность самостоятельно создавать свои сущности?
Хотя исходя из описанной вами схемы работы данного сервиса, вы продолжите наращивать базу сущностей своими методами?
Я недавно описывал систему SpeechMarkup, где логика как раз строится на описании паттернов вручную, что открывает возможность кастомизации сущностей. Не думаете о подобном? Спасибо.
Да, одним из следующих шагов развития публичной версии технологии «выделения смысловых объектов» будет предоставление возможности пользователям создавать свои наборы сущностей, например, различные команды и объекты. Внутренняя версия уже поддерживает эту функциональность.
Это супер. спасибо!
Но как же дорого то! У меня было приложение-говорун с 500к установок без рекламы и пиара На Вашем апи можно сделать просто дико круто, лямов на 100, но ведь без штанов же останешься при цене 5$ за 1000 запросов! Нет ли каких то более мягких условий, для тех же фри приложений, логотип там разместить Ваш например, вот это все?
Если речь о мобильном приложение, то SpeechKit Mobile SDK распространяется по модели freemium: 10 000 голосовых запров в сутки бесплатно. По нашей оценке такого объема вполне достаточно для большинства мобильных приложений.
НЛО прилетело и опубликовало эту надпись здесь
Вот и я о том же. Получается смысла использовать этот апи нет( Вы покрыли только кейс надиктовал хрень, закрыл. А любое маломальски интересное приложение выжрет лимит уже на 100к установок и дальше чистые убытки которые не покроет ни банер ни инапы. Доходы в мобилках бесконечно далеки от 5$ с 1000 реквестов
По нашей оценке это нижняя граница цен на подобные сервисы. Вместе с этим мы готовы рассматривать различные схемы оплаты: 1) оплата за запросы 2) оплата за установки. Кроме этого, наверняка не 100% ежедневных пользователей обычно используют голосовую функциональность того или иного приложения.
В американском аппсторе пока нет. На модерации?
Сегодня должно появиться
Написано, что сделано, чтобы экономить аккумулятор при непрерывном ожидании ключевой фразы, но не написано, каких реальных показателей вы добились. Например, если телефон заряжается в среднем раз в день (то есть, интенсивное использование), на сколько сокращается время работы от одной зарядки при постоянно включенном модуле распознавания? А как у Гугла, лучше или хуже с этим?
Голосовая активация активна только если запущено приложение «Диктовка». Так что, беспокоиться не стоит :)
хм… то есть, оно в фоновом режиме не работает???
Яндекс.Диктовка — это приложение, прежде всего демонстрирующее возможности SpeechKit Mobile SDK. Поэтому цель постоянно «слушать эфир», как в Google Now, не ставилась. Кстати, по умолчанию, мой Nexus тоже не реагирует на «Ok, Google» в фоне.

Впрочем, под андроид можно создать приложение с использованием Mobile SDK, которое бы слушало микрофон постоянно.
Ну я же не прошу по умолчанию. Пусть выключатель будет. И включатель. Голосовой ввод, требующий непосредственно перед работой тычков пальцами — штука не очень удобная, мягко говоря.
Я бы как раз хотел увидеть замеры ложных и правильных срабатываний в различных условиях — в тишине, на улице и тд. Примерно такого же вида как у Sensory
В ближайшем будущем мы планируем рассказать про каждую технологию в отдельности. В том числе, и про Голосовую активацию, мы сделаем отдельную статью, в которой поделимся замерами показателей качества.
Это очень круто. Прямо новости из будущего.
Уже кто-нибудь приделывает это к IDE, чтобы можно было не выпуская из рук чашки с кофе писать код кодить? :)
Кстати под этим соусом можно возродить интерес к native-like языкам программирования вроде Бейсика и Паскаля.
Наконец-то фразы вроде «иди ты» при чтении отладочных логов будут восприниматься системой, а не просто уходить в стены? :)

А при помощи создания макрокоманд и тренировки гортани можно будет и на языках, требующих ->{} записи голосировать быстро.
и тренировки гортани
Предлагаете специальные звуки для служебных символов? Вот весело будет регулярки писать :)
Проще насвистеть в 800 бод.
От всей нашей комнаты и еще немножко от соседней спасибо за ссылку с Autoplay.
Поставьте Яндекс.Диктовку, разговаривайте с ней почаще…

Если когда-нибудь появится версия для настольных компьютеров, обязательно поставлю.
Честно говоря распознает совсем не ахти :(
Дома в полной тишине решил продиктовать — ерунда получается… Стишок «В лесу родилась ёлочка» — 100% попадание, но свободный текст — просто жесть
Для примера начитал первый абзац поста:
Сегодня наше предложение диктовка для интерактивного написание редактирование текста голосом кайласа 2 google play и лугано сдачи предместья его часть новых возможностей комплекса речевых технологий яндекса и мне о том, чем интересные уникальные нашей технологии распознавания речи хочу высказать им. Пусть
Ради интереса попробовал повторить ваш опыт. Знаки препинания почти все отсутствуют. Предложения слились. В 5-10 словах не корректные окончания. В остальном всё отлично. Отличный результат :) Правда я схитрил, и постарался говорить внятно и с дикторской интонацией.
Ради интереса попробовал повторить ваши лоты знаки препинания почти все отсутствуют предложения слились в 50 словах некорректно окончания в остальном все отлично отлично результат, правда, я схитрил и постарался говорить внятно из дикторские интонации В
или вот =)
НЛО прилетело и опубликовало эту надпись здесь
Из доки:
Формат аудиоданных запроса

Поддерживаются следующие форматы:
audio/x-speex
audio/x-pcm;bit=16;rate=8000
audio/x-pcm;bit=16;rate=16000
audio/x-alaw;bit=13;rate=8000
audio/x-wav
audio/x-mpeg-3
Прочие форматы преобразуются в PCM на стороне сервера.
Примечание. x-speex означает «Speex in OGG», убедитесь, что в потоке присутствуют корректные заголовок OGG и структура кадров. Также проверьте, что для кодирования используется широкополосный сигнал (16kHz).
Совет. Для наилучшего качества распознавания используйте формат audio/x-pcm;bit=16;rate=16000.
Примечание. Под audio/x-mpeg-3 здесь имеется в виду MPEG-1 Audio Layer 3 (MP3).
НЛО прилетело и опубликовало эту надпись здесь
Если WiFi, то audio/x-pcm;bit=16;rate=16000, иначе audio/x-speex
Это наш первый шаг в сторону распознавания (диктовки) свободных текстов. Для каких то тематик (например, теже стихи) мы уже показываем очень хорошее качество, для диктовки свободных текстов (надиктовать статью) качество хуже.
Вообще, это очень сложная и поэтому интересная задача — языковое моделирование для диктовки свободного текста или даже для распознавания спонтанной речи. Очевидно, что языковая модель обучается на определенных текстах и сейчас наша модель не покрывает все возможные тематики одинаково хорошо.
А возможно ли создать одну универсальную языковую модель, покрывающую одинаково хорошо все тематики нашей жизни? Скорее нет. Для высокого качества распознавания, нам очень важно знать заранее тематику, на которую будет диктоваться текст и под эту тематику обучать языковую модель. Как быть в случае когда тематика заранее неизвестна?
Мы сейчас ищем ответы на эти вопросы и экспериментируем с подходами к решению задачи распознавания спонтанной речи.
Сделайте, плиз, личную голосовую СУБД — как вот я описывал тут: geektimes.ru/post/90721/

Для начала — просто чтоб похожие по структуре фразы могли укладываться заводимую по факту табличку сущностей из этих фраз. То есть, делаешь несколько заметок одного типа — и чтоб можно было увидеть, что вот, несколько заметок похожи друг на друга, вот наблюдаемый шаблон, а вот — перечень отличавшихся объектов в нём. И чтоб можно было сгруппировать их, отделив от общего списка, и новые фразы с таким шаблоном ссыпались бы в ту же группу.
Какие features вы используете для акустического моделирования — i-vectors или какие-то другие?
Обычные MFCC. i-vectors — это немного про другое, они не могут быть низкоуровневыми признаками речи, такими как MFCC или PLP.
Каким образом вы соединяете вывод WFST с RNN? Я так полагаю, что через n-best lattice? Вы делаете публикации по результатам ваших исследований?
Да, N-best еще раз рескорится RNN-LM.
— Слушай, Яндекс. Пять миллиардов.
— 705032704

Ох уж этот Int32
спасибо, fixed
Планируется ли библиотека с голосовой активацией для ПК? Почему все производители решений для распознавания речи (Google, Nuance, Yandex и др.) так ориентированы на мобильный рынок, рынок домашних ПК тоже не маленький и там востребованность такой технологии как мне кажется еще больше. А рынок встраиваемых систем, почему то все ограничиваются только платформой Android и iOS а как же Windows и Linux? Грустно и обидно :(
Nuance sdk есть и под linux и под windows. То же и у sensory.
Дело в том, что рынок мобильных устройств очень быстро растет и по объемам продаж уже обгоняет десктопы и ноутбуки. На мобильных устройствах востребованность речевых технологий сильно выше по сравнению с десктопами/ноутбуками по ряду причин, например:
1) Неудобства ввода текста с помощью экранной клавиатуры;
2) Ограниченные размеры экрана — мелкие элементы графического интерфейса приложений (иногда нужно целиться), различная функциональность приложения спрятана на разных экранах интерфейса (как правило, на первом экране всё уместить не получается);
3) Использование в ситуациях когда заняты руки: на ходу, за рулем, на велосипеде и т.п.

Но мы уже начали делать шаги в сторону немобильных устройств, с помощью SpeechKit Cloud речевые технологии Яндекса уже сейчас можно встраивать в любые устройства/сервисы с доступом в интернет.
Сколько у друзей не спрашивал, никто не использует голосовой ввод и тем более управление, слишком криво они работают на мобильном и что еще существеннее, использование распознавания в зашумленных местах сильно ограничено. При поездке в метро гораздо проще набрать смс руками, чем пытаться кричать в микрофон телефона, ну а про наличие мобильного интернета в некоторых городах страны я вообще молчу, а раз нет быстрого интернета, то как использовать Ваше распознавание?
А вот дома и на работе, в тихой обстановке я легко использую свою программу MSpeech для надиктовки текста в ICQ, в браузере и т.д.
Сложно тут поспорить, конечно, в тихой обстановке распознаванию речи сильно проще. Но вместе с этим, по нашим данным это не мешает миллионам людей каждый день в очень шумной обстановке использовать голосовой ввод и голосовое управление, например, в Яндекс.Навигаторе.

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

Вот небольшой прототип web диктовки, можете попробовать подиктовать на ПК: webasr.yandex.net/
>>Вот небольшой прототип web диктовки

Очень сырой прототив, в FF35 ничего толком не распознает :(
А можете привести пример: что Вы диктовали и что в итоге распозналось. Спасибо.
Раз два три четыре пять вышел зайчик погулять.

А распозналось только 1 2 3 4 5

Хотя сейчас еще раз попробовал, вроде распознал все, но задержка ооооочень большая, я уже успел сказать еще 10 слов после ПОГУЛЯТЬ, а он все что то думает, точки бегут и бегут.
Хотел написать, что работает так себе, а тут уже написали. Хочу добавить, что у меня лучше всех работает распознование в swype.
Есть ли у вас в планах модуль для asterisk'а?
Экспериментируем сейчас с asterisk; да, возможно, выпустим свой модуль для упрощения интеграции
А когда будет модуль TTS для андроида?
это же не то, я не могу его как ещё один TTS-движок инсталлировать в систему из маркета, чтобы андроид им свой интерфейс озвучивал. Гугловый могу, svox могу, acapela tts могу, а этот — нет.
Извините, не понял сразу, что вы имели ввиду. Мы в ближайшем будущем не планировали создание такого модуля, но идея очень хорошая и мы возьмем её в работу. Спасибо.
А сколько занимает модерация проекта и составление файлов для VAD?
Я отправил запрос — ни привета, ни ответа.
Может стоит автоматизировать?
Обычно, 1-2 дня.
Уже автоматизируем и скоро дадим инструмент для самостоятельного создания моделей для Голосовой активации (Voice Activation).
1-2 дня? Мне вот уже больше недели не отвечает техсап…
Извините, пожалуйста, за столь долгое ожидание — процесс не был оптимально налажен. Модель Вам отправили сегодня.
Да, Денис, спасибо. Уже интегрировали, но качество гораздо ниже чем у решения на том же pocketsphinx… Верных срабатываний очень мало.
Будет ли у вас инструмент для какой-то тонкой настройки??
Всё то же самое. Ответа до сих пор нет.
Как пробовать сервис-то, если у вас так «процесс отлажен»?
Инструмента для тонкой настройки мы на данный момент не планировали, делаем сейчас инструмент для самостоятельного создания моделей для голосовой активации.

Как пробовать сервис-то, если у вас так «процесс отлажен»?

извините, это была временная проблема, сейчас модели мы оперативно высылаем
Неделя прошла…
Мы подбираем оптимальные параметры для работы ваших команд — это требует времени, ответ от тех.поддержки будет. Подождите, пожалуйста.
Поскорее бы Яндекс.Навигатор освоил команду «да, давай свой более быстрый маршрут», а то за рулем очень тяжело попасть в эту плашечку.
Спасибо за хорошую идею. Подумаем над реализацией в ближайших релизах.
прекрасная статья — прекрасная новость.
приложение наверняка полезное, и это будет развиваться, и хорошо что яндекс идет в форватере.

Но у меня один юзерский вопрос — зачем вашему приложению (Яндекс.Диктовка) доступ к фото и видео файлам пользователя?
В чем ваша логика при задании разрешений?
После запуска Диктовка распаковывает модель для голосовой активации на SD-карту в каталог приложения. В версиях Android до 4.4 для этого необходима особая привелегия — для записи на SD. В новых версиях для доступа к этому каталогу привилегия не нужна, и в следующем обновлении мы уберём её.
странно, что в диктовке не распознаются и в последствии не воспроизводятся правильные ударения ударения. по идее их ведь должно быть достаточно просто считать с человеческой речи?
Скрытые марковские модели, глубокая нейронная сеть, рекуррентная нейронная сеть и всё в 1 месте!

Почему используется MFCC? вроде как DNN может работать и с «сырыми данными», во всяком случае с изображениями работает на уровне пикселей(хотя там свёрточные сети скорее).

можно ли как то дообучить модель под конкретного человека?
Попробовал webasr.yandex.net/ пока получается примерно так:
Время шло, а использование SDK на Tegra2-based процессорах так и продолжало крашить приложение…
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре , чтобы оставить комментарий