Как настроить сервер распознавания речи? - PullRequest
1 голос
/ 18 января 2012

Как реализовать распознавание речи на стороне сервера (не предлагайте HTML5's x-webkit-speech, javascript и т. Д.)?Программа примет аудиофайл в качестве входных данных и с достаточной точностью обеспечивает текстовую транскрипцию аудиофайла.Какие варианты я могу использовать?

Я пытался внедрить Sphin4 с моделью Voxforge , но точность очень низкая (они могут быть также некоторой проблемой в моей конфигурации, я все еще пытаюсьузнать его).В одном посте я читал, что когда мы используем <input name="speech" id="speech" type="text" x-webkit-speech />, входные данные отправляются на внешний сервер и тот сервер, который делает распознавание и отправляет данные обратно в браузер.

Как настроить этот сервер? Любой существующий сервер с открытым исходным кодом был бы также полезен, если бы он мог распознавать предложения на английском языке с минимальным уровнем ошибок.

Ответы [ 3 ]

3 голосов
/ 18 января 2012

Какой тип приложения вы используете? Является ли целью приложения расшифровка пользовательского разговорного ввода в тексте или просто понимание простых команд? Такие системы, как Sphinx4, используют статистическую модель для транскрипции речи. Вы не получите такого же хорошего распознавания с этими типами систем, как с системой автоматического распознавания речи (ASR), которая использует грамматики для ограничения пространства поиска для ASR, чтобы получить лучшее распознавание. Системы, использующие статистические модели, требуют значительных настроек и пробных запусков, чтобы получить достойное признание.

Sphinx4 - единственный ASR с открытым исходным кодом, о котором я знаю. Существует ряд коммерческих продуктов / услуг, причем Nuance является крупнейшим на рынке. В некоторых коммерческих предложениях есть возможность включить людей для расшифровки сообщения, когда уровень распознавания низкий.

У Google есть неофициальный API, который он использует внутренне для таких сервисов, как Google Voice, и я полагаю, что он является тем же, который используется в веб-наборе, на который вы ссылаетесь. Google Voice примет сообщения голосовой почты, расшифрует их и отправит вам текст по электронной почте. Google Voice считается современным для транскрипции, но если у вас есть аккаунт Voice, вы увидите, что транскрибированные сообщения не так хороши. Вот ссылка на статью в блоге об использовании неофициального Google Speech API .

1 голос
/ 18 января 2012

У вас есть некоторые проблемы: 1. Как записать звук в клиенте.2. Как перенести эти аудио на сервер.3. Как сделать признание.4. Как вернуть обратно оценку признания и доверия.5. Что вы собираетесь делать с этими показателями распознавания и достоверности (ваше приложение).

В первом случае вы можете использовать подход Google, при котором кто-то нажимает на значок микрофона и записывает голос несколько раз.Или iPhone Siri, где для записи звука используется VAD.

Во-вторых, это основная проблема передачи файлов по протоколу TCP / IP.Можно также использовать подход Apple / Google и сжимать аудиофайлы с помощью Flac или Speex.

В-третьих, это действительно сложная часть.Вам нужны гораздо лучшие акустические модели, чем те, которые вы можете получить от Voxforge.Это особенно верно для непрерывного распознавания речи, без контекста, как Сири.Для команд хорошо подходит Voxforge.

В-четвертых, это еще одна проблема передачи файлов.

В-пятых, это ваше приложение.

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

1 голос
/ 18 января 2012

В Chrome этот сервер является частным сервером Google.Вы не можете настроить свою собственную версию.Люди обратили внимание на вызовы на сервер, см. http://mikepultz.com/2011/03/accessing-google-speech-api-chrome-11/, например, но это не очень хорошая идея для производственного или коммерческого приложения, поскольку Google может изменить API или ограничить его доступ в любое время.

Вот старый ответ на другой вопрос, но он может быть полезен - https://stackoverflow.com/a/6351055/90236

...