Преобразование ЛЮБОГО предложения в текст с помощью речи Windows

В настоящее время у меня есть программа на C#, которая принимает речь с помощью системы распознавания речи (SR) MS Windows, преобразует ее в текст, отправляет вопрос в виде текста в Worlfram Alpha, а затем читает текстовый ответ обратно, используя преобразование текста в речь ( ТТС).

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


person Liamdev631    schedule 13.12.2012    source источник


Ответы (2)


Сегодня существует два основных типа систем распознавания речи; один тип поддерживает использование грамматик, перечисленных правила для ожидаемых результатов распознавания, а другой использует статистическое моделирование (например, скрытая марковская модель) для получения результатов распознавания на основе вероятности совпадения набора данных, который использовался для «обучения» системы. То, что вы описываете как «список предопределенных предложений и фраз», является грамматикой. Я почти уверен, что система распознавания речи MS Windows поддерживает только решение, основанное на грамматике. То, что вы описываете как желаемое решение, — это система статистического моделирования для SR. Вы можете взглянуть на проект Sphinx. Он имеет открытый исходный код и поддерживает статистическое моделирование. Имейте в виду, что настройка системы статистического моделирования непроста и требует много времени для ее правильной настройки.

person Kevin Junghans    schedule 13.12.2012

Проверьте это — класс SpeechSynthetizer, а также этот связанный вопрос о переполнении стека Как написать приложение который читает текст и произносит речь

Для преобразования речи в текст посмотрите эту статью codeproject http://www.codeproject.com/Articles/380027/Csharp-Speech-to-Text

person dutzu    schedule 13.12.2012
comment
Это не совсем то, что я искал. У меня есть список предложений, которые распознает компьютер, и я уже могу заставить компьютер говорить что угодно. Мне нужно иметь возможность сказать АБСОЛЮТНО ЧТО-НИБУДЬ, например, Где родился Джордж Вашингтон, и чтобы компьютер мог сохранить это предложение в строковой переменной. Также было бы неплохо, если бы программа могла вызывать событие, распознаваемое предложением. - person Liamdev631; 13.12.2012
comment
извините, вам нужно наоборот - речь в текст, а не текст в речь, проверьте мой обновленный ответ. - person dutzu; 13.12.2012
comment
Я только пытался помочь. Вы не указали, что используете встроенный SpeechRecognition в .net framework или любую другую возможную стороннюю реализацию. И нет упоминания об ограничении, подобном тому, о котором вы сообщаете. Поэтому, пожалуйста, будьте более конкретными в своем вопросе, прежде чем отклонять бесплатно оказанную помощь. - person dutzu; 13.12.2012