Голос/речь в тексте
Мне нужен API или библиотека (желательно бесплатно), которая будет конвертировать голос/речь через микрофон в текст (строка).
Кроме того, мне понадобится API или библиотека, которая может делать текст в речь.
Я хотел бы использовать С# и .NET, но других языков будет достаточно.
Спасибо.
Ответы
Ответ 1
Вы можете использовать CMU Sphinx, поскольку это довольно открытое и масштабируемое решение, и я думаю, что он может использоваться как на стороне клиента, так и на стороне сервера:
http://cmusphinx.sourceforge.net/
Если вы ищете решение для настольных компьютеров Microsoft, вы можете использовать SAPI:
http://msdn.microsoft.com/en-us/magazine/cc163663.aspx
На стороне сервера вы можете использовать Microsoft Unified Communication, но также рассматривайте лицензирование:
http://www.microsoft.com/uc/en/gb/default.aspx
Update:
Этот поток также имеет хорошую ссылку:
С# Распознавание речи - это то, что сказал пользователь?
Ответ 2
Вот полный пример использования С# и System.Speech для преобразования из речи в текст
Код можно разделить на две основные части:
настройка объекта SpeechRecognitionEngine (и его необходимых элементов)
обработки речевых речевых и голосовых гипотез.
Шаг 1: Настройка SpeechRecognitionEngine
_speechRecognitionEngine = new SpeechRecognitionEngine();
_speechRecognitionEngine.SetInputToDefaultAudioDevice();
_dictationGrammar = new DictationGrammar();
_speechRecognitionEngine.LoadGrammar(_dictationGrammar);
_speechRecognitionEngine.RecognizeAsync(RecognizeMode.Multiple);
В этот момент ваш объект готов начать транскрибирование звука с микрофона. Однако вам нужно обработать некоторые события, чтобы получить доступ к результатам.
Шаг 2: Обработка событий SpeechRecognitionEngine
_speechRecognitionEngine.SpeechRecognized - = new EventHandler (SpeechRecognized); _speechRecognitionEngine.SpeechHypothesized - = new EventHandler (SpeechHypothesizing);
_speechRecognitionEngine.SpeechRecognized + = новый EventHandler (SpeechRecognized); _speechRecognitionEngine.SpeechHypothesized + = new EventHandler (SpeechHypothesizing);
private void SpeechHypothesizing (отправитель объекта, SpeechHypothesizedEventArgs e) { /// результаты в реальном времени от двигателя строка realTimeResults = e.Result.Text; }
private void SpeechRecognized (отправитель объекта, SpeechRecognizedEventArgs e) { /// окончательный ответ от строки двигателя finalAnswer = e.Result.Text; }
Вот оно. Если вы хотите использовать предварительно записанный .wav файл вместо микрофона, вы должны использовать
_speechRecognitionEngine.SetInputToWaveFile(pathToTargetWavFile);
вместо
_speechRecognitionEngine.SetInputToDefaultAudioDevice();
В этих классах есть множество различных опций, и их стоит изучить более подробно.
http://ellismis.com/2012/03/17/converting-or-transcribing-audio-to-text-using-c-and-net-system-speech/
Ответ 3
См. Использование С++ для вызова и использования распознавания речи Windows
Что говорит:
Microsoft предоставляет механизмы распознавания речи для клиентских и серверных версий Windows. Оба могут быть запрограммированы на языках С++ или .NET. Традиционный API для программирования на С++ известен как SAPI. Идентификаторы имен .NET для речи клиента и сервера - System.Speech и Microsoft.Speech.
Документация SAPI - http://msdn.microsoft.com/en-us/library/ms723627(VS.85).aspx
Пространство имен .NET для распознавания клиентов - System.Speech - http://msdn.microsoft.com/en-us/library/system.speech.recognition.aspx. Windows Vista и 7 включают речевой движок.
Пространство имен .NET для распознавания сервера - Microsoft.Speech, а полный SDK для версии 10.2 доступен по адресу http://www.microsoft.com/downloads/en/details.aspx?FamilyID=1b1604d3-4f66-4241-9a21-90a294a5c9a4. Речевой движок - бесплатная загрузка.
Об этом говорили многие более ранние вопросы. См. Прототип, основанный на распознавании речи, начало с распознавания речи и синтеза речи, и SAPI и проблема Windows 7.
Ответ 4
Для преобразования текста в речь вам необходимо выполнить следующие шаги:
1.Добавить ссылку System.Speech.
2.Добавьте заголовки:
с использованием System.Speech;
с использованием System.Speech.Synthesis;
3. Добавьте следующий код, где textBox1 - это имя по умолчанию для текстового поля.
SpeechSynthesizer speaker = new SpeechSynthesizer();
speaker.Rate = 1;
speaker.Volume = 100;
speaker.Speak(textBox1.Text);
Ответ 5
I'd like to use C# and .NET, but other languages will suffice.
Проверьте это, если вы открыты для C++
Festival
Ответ 6
В ОС Windows для Text2Speach есть встроенная DLL. Вы найдете соответствующую dll в каталоге c:\Programs\Shared Folders\Microsoft Shared\Speech\sapi.dll(sAPI - speach api). Я не совсем уверен в пути, но в любом случае вы можете найти sapi.dll.
Затем вы можете использовать следующий фрагмент кода
SpVoice oVoice = new SpVoice();
oVoice.Voice = oVoice.GetVoices("","").Item(0); // 0 indicating what kind of speaker you want
oVoice.Volume = 50;
oVoice.Speak("hello world", SpeechVoiceSpeakFlags.SVSFDefault);
oVoice = null;