2012-04-03 4 views
6

Sto provando a creare un programma C# che utilizzi l'API di riconoscimento vocale Microsoft (con Kinect) ma sto faticando per iniziare. Ho le dichiarazioni utilizzandoRiconoscimento vocale Microsoft: quale riferimento devo aggiungere?

using Microsoft.Speech.AudioFormat; 
using Microsoft.Speech.Recognition; 

Ma mi sta dando l'errore "del tipo o dello spazio dei nomi il nome 'Discorso' non esiste nello spazio dei nomi 'Microsoft'. Vi manca un riferimento all'assembly?"

Qualcuno sa cosa aggiungere? System.Speech non fa il trucco.

+1

Hai aggiungere il riferimento alle API DLL Microsoft Speech Recognition o progetto per il vostro progetto? – Alexandre

+0

Vedere http://SpeechTurtle.codeplex.com per un progetto che funziona con e senza Kinect e Microsoft.Speech per guidare una tartaruga usando la propria voce (basata su un campione di Kinect SDK). La versione attuale è per 1.8 SDK (Kinect per Xbox 360 e Kinect per Windows v1), in programma di aggiornarlo per funzionare anche con l'SDK 2.0 (tramite il plugin MEF) in futuro (per supportare anche KfW v2 e Kinect per Xbox One) quando prendi il più nuovo Kinect per Xbox One e l'adattatore per Windows –

risposta

18

Assicurati di aggiungere questa assemblea al progetto: C: \ Program Files \ Microsoft SDK \ Speech \ v11.0 \ Assembly \ Microsoft.Speech.dll.

Maggiori dettagli possono essere trovati sul MSDN

+1

Non l'ho provato da solo, ma dovrebbe funzionare a 64 bit. –

1

Provare invece lo spazio dei nomi System.Speech.Recognition. Lo spazio dei nomi Microsoft.Speech.Recognition fa parte del prodotto Office Communications Server.

collegamento

Aiuto: System.Speech.Recognition

Office Communications Server (UCMA Application) UCMA Speech SDK

+0

Sto seguendo all'incirca [questo] (http://www.ximplosionx.com/2011/06/22/intro-to-the-kinect-sdkadding-speech- riconoscimento /) guida. Non è aggiornato? Pensavo che Microsoft.Speech e System.Speech fossero separati? – user1002973

+0

@ user1002973 - Modificato. –

+0

Microsoft.Speech e System.Speech sono simili, ma diversi. Vedi http://stackoverflow.com/questions/2977338/what-is-the-difference-between-system-speech-recognition-and-microsoft-speech-re –

8

Penso che ci sia una certa confusione perché si sta utilizzando il Kinect SDK e alcune delle risposte qui considerano i relativi SDK (System.Speech in .net e Microsoft.Speech che è distribuito con una varietà di prodotti server Microsoft e la piattaforma vocale del server). Dai tuoi commenti nelle altre risposte sembra che Kinect SDK utilizzi lo spazio dei nomi Microsoft.Speech e la tua app deve fare riferimento a Microsoft.Speech.dll fornito con il Kinect SDK.

Giusto per chiarire alcune cose (spero):

System.Speech è un'API .NET di base e un sistema di riconoscimento che lo implementa è incluso in Windows 7. Si tratta di un client o un desktop riconoscitore e CAN essere formati per utenti specifici e includere una grammatica di dettatura.

Microsoft.Speech è un'API .net simile ma leggermente diversa. I riconoscitori che impiantano Microsoft.Speech fanno parte di vari prodotti Server come UCMA e Microsoft Server Speech Platform.

Come indicato, Microsoft.Speech è anche l'API utilizzata per il riconoscimento Kinect. Questo è documentato nel link MSDN Philipp Schmid citato in un commento Speech C# How To (Kinect). Non ho lavorato con Kinect, ma questo ha senso dal momento che il riconoscimento non richiede l'addestramento degli altoparlanti.

Queste risorse sono un po 'fuori data, perché il Kinect sono antecedenti, ma può essere utile:

Microsoft.Speech e System.Speech sono simili, ma diversi. Vedi What is the difference between System.Speech.Recognition and Microsoft.Speech.Recognition?

Per iniziare con .NET speech, c'è un ottimo articolo che è stato pubblicato alcuni anni fa allo http://msdn.microsoft.com/en-us/magazine/cc163663.aspx. È probabilmente il miglior articolo introduttivo che ho trovato finora. È un po 'obsoleto, ma molto helfpul. (Il metodo AppendResultKeyValue è stato eliminato dopo la versione beta.) Questo articolo mostra lo spazio dei nomi System.Speech, ma la maggior parte di questi può essere mappata direttamente a Microsoft.Speech.

4

È necessario eseguire questa operazione, che funziona per me.

Importa Microsoft.Speech.dll dal seguente percorso:

C:\Windows\assembly\GAC_MSIL\Microsoft.Speech\11.0.0.0__31bf3856ad364e35\Microsoft.Speech.dll