Mac OS X API для преобразования речи в текст. Как? - PullRequest
9 голосов
/ 08 мая 2009

У меня есть программа, которая получает аудио (моно) поток битов из TCP / IP. Мне интересно, сможет ли API речи (распознавания речи) в Mac OS X сделать преобразование речи в текст для меня.

(Я не против сначала сохранить аудио в .wav и прочитать его, а не делать преобразование на лету).

Я прочитал официальные документы онлайн, это немного сбивает с толку. И я не смог найти хорошего примера на эту тему.

Кроме того, я должен сделать это в Какао / Углерод / Java или Objective-C?

Может кто-нибудь пролить свет?

Спасибо.

Ответы [ 4 ]

6 голосов
/ 08 мая 2009

Есть несколько примеров, которые копируются в / Developer / examples / Speech / Recognition при установке XCode.

Класс какао для распознавания речи NSSpeechRecognizer . Я не использовал его, но, насколько мне известно, для распознавания речи требуется, чтобы вы построили грамматику, которая помогла движку выбрать один из нескольких вариантов, вместо того, чтобы позволять передавать ввод в свободной форме. Это все объясняется в приведенных выше примерах.

6 голосов
/ 03 ноября 2009

Возможно, это немного поздно, но я все равно позвоню.

Средства распознавания речи в OS X (как на стороне углерода, так и на стороне какао) предназначены для распознавания команд речи, что означает, что они будут распознавать слова (или фразы, команды), которые были загружены в модель языка речевой системы. , Я сделал кое-что с небольшими словарями, и это работает довольно хорошо, но если вы хотите распознать произвольную речь, вещи могут стать более приятными.

Что еще нужно помнить, это то, что функциональность, которую предоставляют речевые API в OS X, не один к одному. Материал Carbon обеспечивает функциональность, которая не достигла NSSpeechRecognizer (в документах есть упоминание об этом).

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

1 голос
/ 07 июля 2010

Вы можете использовать либо SpeechSynthesis ApplicationServices (10.0 +)

CFStringRef cfstr = CFStringCreateWithCString(NULL,"Hello World!", kCFStringEncodingMacRoman);
Str255 pstr;    
CFStringGetPascalString(cfstr, pstr, 255, kCFStringEncodingMacRoman);   
SpeakString(pstr);

или NSSpeechSynthesizer от AppKit (10.3 +)

NSSpeechSynthesizer *synth = [[NSSpeechSynthesizer alloc] initWithVoice:@"com.apple.speech.synthesis.voice.Alex"];
[synth startSpeakingString:@"Hello world!"];
1 голос
/ 08 мая 2009

Вот хорошая статья О'Рейли , с которой можно начать.

...