Я пытаюсь разработать текстовый редактор с использованием языка С# и реализовать распознавание голоса для обычных функций файла, возможно ли это реализовать. Мне очень жаль, если я повторяю вопрос, который был задан ранее. Я просто хочу знать, есть ли способы преобразования речи в текст с помощью С#. Ваша помощь действительно ценна. Ожидание ответа. Заранее спасибо.
Преобразование речи в текст с использованием C#
Ответы (5)
Вот полный пример использования C# и System.Speech для преобразования речи в текст.
Код можно разделить на 2 основные части:
настройка объекта SpeechRecognitionEngine (и его необходимых элементов), обрабатывающего события SpeechRecognized и SpeechHypothesized.
Шаг 1. Настройка SpeechRecognitionEngine
_speechRecognitionEngine = new SpeechRecognitionEngine();
_speechRecognitionEngine.SetInputToDefaultAudioDevice();
_dictationGrammar = new DictationGrammar();
_speechRecognitionEngine.LoadGrammar(_dictationGrammar);
_speechRecognitionEngine.RecognizeAsync(RecognizeMode.Multiple);
На данный момент ваш объект готов начать расшифровку звука с микрофона. Однако вам нужно обработать некоторые события, чтобы получить доступ к результатам.
Шаг 2. Обработка событий SpeechRecognitionEngine
_speechRecognitionEngine.SpeechRecognized -= новый обработчик событий (SpeechRecognized); _speechRecognitionEngine.SpeechHypothesized -= новый обработчик событий (SpeechHypothesized);
_speechRecognitionEngine.SpeechRecognized += новый обработчик событий (SpeechRecognized); _speechRecognitionEngine.SpeechHypothesized += новый обработчик событий (SpeechHypothesized);
private void SpeechHypothesizing(object sender, SpeechHypothesizedEventArgs e) { ///результаты движка в реальном времени string realTimeResults = e.Result.Text; }
private void SpeechRecognized(object sender, SpeechRecognizedEventArgs e) { ///окончательный ответ от движка string finalAnswer = e.Result.Text; }
Вот и все. Если вы хотите использовать предварительно записанный файл .wav вместо микрофона, вы должны использовать
_speechRecognitionEngine.SetInputToWaveFile (pathToTargetWavFile);
вместо
_speechRecognitionEngine.SetInputToDefaultAudioDevice();
В этих классах есть куча разных вариантов, и их стоит изучить более подробно.
Вы можете попробовать SharpSphinx Версия Sphinx-4 для C# http://sourceforge.net/p/cmusphinx/discussion/sphinx4-sightings/thread/5953c635/?limit=50
Если я правильно помню, Microsoft Speech SDK поддерживает преобразование речи в текст.
Существует также iSpeech API, который можно использовать для распознавания речи в качестве веб-службы.