Domanda

Ci sono due spazi dei nomi e le assemblee per il riconoscimento vocale in .NET simili. Sto cercando di capire le differenze e quando è opportuno usare uno o l'altro.

C'è System.Speech.Recognition dal System.Speech di montaggio (in System.Speech.dll). System.Speech.dll è una DLL di base nella libreria di classi .NET Framework 3.0 e versioni successive

C'è anche Microsoft.Speech.Recognition dal Microsoft.Speech di montaggio (in microsoft.speech.dll). Microsoft.Speech.dll fa parte del SDK 2.0 UCMA

I trovare la documentazione di confusione e non ho le seguenti domande:

System.Speech.Recognition dice che è per "Il desktop di Windows Speech Technology", questo significa che non può essere utilizzato su un sistema operativo server o non può essere utilizzato per applicazioni di alta scala?

L'UCMA 2.0 Speech SDK ( http: //msdn.microsoft.com/en-us/library/dd266409%28v=office.13%29.aspx ) dice che essa richiede Microsoft Office Communications Server 2007 R2 come prerequisito. Tuttavia, mi è stato detto in occasione di conferenze e incontri che, se non ho bisogno di OCS caratteristiche come la presenza e il flusso di lavoro posso usare lo Speech API UCMA 2.0 senza OCS. È vero?

Se sto costruendo una semplice applicazione di riconoscimento per un'applicazione server (dire che ho voluto automaticamente Transcribe messaggi vocali) e non ho bisogno di caratteristiche di OCS, quali sono le differenze tra le due API?

È stato utile?

Soluzione

La risposta breve è che Microsoft.Speech.Recognition utilizza la versione Server di SAPI, mentre System.Speech.Recognition utilizza la versione desktop di SAPI.

Le API sono per lo stesso, ma i motori sottostanti sono differenti. In genere, il motore Server è progettato per accettare l'audio telefonico qualità per applicazioni di comando e controllo; il motore Desktop è progettato per accettare l'audio di qualità superiore sia per il comando e le applicazioni di controllo e di dettatura.

È possibile utilizzare System.Speech.Recognition su un sistema operativo server, ma non è progettato per scalare quasi così come Microsoft.Speech.Recognition.

Le differenze sono che il motore Server non avrà bisogno di formazione, e lavorerà con audio di qualità inferiore, ma avrà una qualità di riconoscimento inferiore rispetto al motore di desktop.

Altri suggerimenti

Ho trovato la risposta di Eric veramente utile, ho solo voluto aggiungere qualche dettaglio in più che ho trovato.

System.Speech.Recognition può essere utilizzato per programmare i sistemi di riconoscimento del desktop. SAPI e desktop riconoscitori hanno spedito nei prodotti:

  • Windows XP: SAPI v5.1 e nessun sistema di riconoscimento
  • Windows XP Tablet Edition: SAPI v5.1 e v6.1 Recognizer
  • Windows Vista: SAPI V5.3 e V8.0 Recognizer
  • Windows 7:? SAPI V5.4 e V8.0 Recognizer

I server sono dotati di SAPI, ma nessun sistema di riconoscimento:

  • Windows Server 2003: SAPI v5.1 e nessun sistema di riconoscimento
  • Windows Server 2008 e 2008 R2: SAPI V5.3? e nessun sistema di riconoscimento

di riconoscimento per il desktop sono anche spediti in prodotti come ufficio.

  • Microsoft Office 2003: Recognizer v6.1

Microsoft.Speech.Recognition può essere utilizzato per programmare i sistemi di riconoscimento del server. riconoscitori Server sono spediti nei prodotti:

  • Speech Server (varie versioni)
  • Office Communications Server (OCS) (varie versioni)
  • UCMA - che è un'API gestita per OCS che (credo) incluso un sistema di riconoscimento ridistribuibile
  • Piattaforma Speech Microsoft Server - riconoscitore v10.2

L'SDK completo per la 10.2 Versione piattaforma Microsoft Speech Server è disponibile all'indirizzo http://www.microsoft.com/downloads/en/details.aspx?FamilyID=1b1604d3-4f66-4241-9a21-90a294a5c9a4 . Il motore discorso è un download gratuito. La versione 11 è ora disponibile presso http://www.microsoft.com/download /en/details.aspx?id=27226 .

Per Microsoft Speech Platform SDK 11 informazioni e download, vedi:

di riconoscimento per il desktop sono progettati per InProc corsa o condivisi. riconoscitori condivise sono utili sul desktop in cui vengono utilizzati i comandi vocali per controllare tutte le applicazioni aperte. riconoscitori server può essere eseguito solo inproc. riconoscitori inproc vengono utilizzati quando una singola applicazione utilizza il sistema di riconoscimento o quando devono essere riconosciuti file WAV o flussi audio (riconoscitori condivise non in grado di elaborare i file audio, solo l'audio da dispositivi di input).

riconoscitori vocali

??Solo per il desktop includono una grammatica dettatura (grammatica regime previsto utilizzato per la dettatura di testo libero). La classe System.Speech.Recognition.DictationGrammar non ha complemento nel namespace Microsoft.Speech.

È possibile utilizzare utilizzare le API per determinare le query di recongizers installati

  • Desktop: System.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers ()
  • Server: Microsoft.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers ()

ho scoperto che posso anche vedere quali sono installati sistemi di riconoscimento, cercando le chiavi di registro:

  • di riconoscimento per il desktop: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Speech \ Recognizers \ Gettoni
  • riconoscitori Server: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Speech Server \ v10.0 \ Recognizers \ Gettoni

--- --- Aggiornamento

Come discusso nel Microsoft Speech Recognition -? quello di riferimento devo aggiungere , Microsoft.Speech è anche l'API utilizzata per il sistema di riconoscimento Kinect. Questo è documentato in questo articolo di MSDN http://msdn.microsoft .com / it-it / library / hh855387.aspx

Ecco il link per la Biblioteca Speech (Piattaforma Speech Server MS):

piattaforma Microsoft Server Speech 10.1 Rilasciato (SR e TTS in 26 lingue)

Sembra Microsoft ha scritto un articolo che cancella le cose per quanto riguarda le differenze tra Microsoft Platform Speech e Windows SAPI - https://msdn.microsoft.com/en-us/library/jj127858.aspx . Una differenza mi sono trovato durante la conversione di codice di riconoscimento vocale per Kinect da Microsoft.Speech a System.Speech (vedi http: // GitHub .com / Birbilis / Hotspotizer ) era che l'ex supporti SGR grammatiche con tag-format = semantica / 1.0-letterali, mentre il secondo non fa e si deve convertire alla semantica / 1,0 cambiando x per fuori = "X"; al tag

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top