Голос/речь в тексте

Мне нужен 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;