Question

J'ai un programme qui reçoit un flux audio (mono) de bits provenant de TCP / IP. Je me demande si l’API (reconnaissance vocale) de Mac OS X pourrait effectuer une transformation parole-texte pour moi.

(Cela ne me dérange pas de sauvegarder l'audio dans .wav d'abord et de le lire comme opposé pour faire la transformation à la volée).

J'ai lu la documentation officielle en ligne, c'est un peu déroutant. Et je n’ai trouvé aucun bon exemple à ce sujet.

Aussi, devrais-je le faire dans Cocoa / Carbon / Java ou Objective-C?

Quelqu'un peut-il s'il vous plaît faire la lumière?

Merci.

Était-ce utile?

La solution

Un certain nombre d'exemples sont copiés sous / Developer / Examples / Speech / Recognition lorsque vous installez XCode.

La classe Cocoa pour la reconnaissance vocale est NSSpeechRecognizer . Je ne l'ai pas utilisé, mais pour autant que je sache, la reconnaissance vocale vous oblige à créer une grammaire pour aider le moteur à choisir parmi un grand nombre de choix, au lieu de vous permettre de passer en saisie libre. Tout cela est expliqué dans les exemples mentionnés ci-dessus.

Autres conseils

Cela arrive peut-être un peu tard, mais je vais quand même y aller.

Les fonctionnalités de reconnaissance vocale sous OS X (du côté carbone et cacao) servent à la reconnaissance des commandes vocales, ce qui signifie qu'elles reconnaîtront les mots (ou expressions, commandes) chargés dans le modèle de langage du système de parole. . J'ai utilisé des dictionnaires de petite taille et cela fonctionne plutôt bien, mais si vous voulez reconnaître un discours arbitraire, les choses peuvent devenir plus poilues.

Il est également important de garder à l’esprit que les API fournies par les API vocales sous OS X ne sont pas personnalisées. Le composant Carbon fournit des fonctionnalités qui n’ont pas été ajoutées à NSSpeechRecognizer (la documentation en fait mention).

Je ne sais pas à propos de Cocoa, mais Carbon Speech Recognition Manager vous permet de spécifier des entrées autres qu'un microphone pour qu'un flux audio fonctionne parfaitement.

Voici un bon article publié dans O'Reilly pour vous aider à démarrer.

Vous pouvez utiliser SpeechSynthesis (10.0 +) d'ApplicationServices

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

ou NSSpeechSynthesizer (10.3 +) d'AppKit

NSSpeechSynthesizer *synth = [[NSSpeechSynthesizer alloc] initWithVoice:@"com.apple.speech.synthesis.voice.Alex"];
[synth startSpeakingString:@"Hello world!"];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top