Problemi con system.speech.recognition
-
domenica 8 gennaio 2012 11:47
salve a tutti,
voglio realizzare un programma che risponde a dei comandi vocali. Ho installato le Sapi e poi ho importato la System.Speech.dll; quando provo a far pronunciare la frase al computer funziona, ma il problema viene quando tento di attivare la funzionalità di riconoscimento vocale di windows. posto un'immagine con l'errore e il codice.
Premetto che ho windows 7 ultimate sp1 e uso il net framework 3.5, lingua di visualizzazione italiana. Grazie in anticipo per l'aiuto
Tutte le risposte
-
domenica 8 gennaio 2012 12:28Moderatore
salve a tutti,
voglio realizzare un programma che risponde a dei comandi vocali. Ho installato le Sapi e poi ho importato la System.Speech.dll; quando provo a far pronunciare la frase al computer funziona, ma il problema viene quando tento di attivare la funzionalità di riconoscimento vocale di windows. posto un'immagine con l'errore e il codice.
Premetto che ho windows 7 ultimate sp1 e uso il net framework 3.5, lingua di visualizzazione italiana. Grazie in anticipo per l'aiuto
Ciao, Speech recognition è disponibile solo per le localizzazioni inglese, spagnolo, francese e tedesco di Windows. Se utilizzi System.Speech, che fa parte di WPF, non hai bisogno di installare anche le SAPI.Circa l'eccezione, dovresti mostrare i dettagli perchè mostrare il solo messaggio generico è di poco aiuto.
Alessandro Del Sole
Microsoft MVP - Visual Basic: development
http://community.visual-basic.it/alessandro/ -
domenica 8 gennaio 2012 13:08
Ciao!
Se hai Windows 7 in italiano, per abilitare il riconoscimento vocale per la lingua inglese, assicurati di aver installato il relativo Language Pack attraverso Windows Update.
Detto questo, per quanto riguarda l'eccezione che ottieni, prova ad aggiungere la seguente istruzione:
recognizer.SetInputToDefaultAudioDevice()
Subito dopo l'istanziazione della variabile recognizer. Essa specifica qual è la sorgente da utilizzare per ottenere l'audio da riconoscere: in particolare, in questo caso indica che la sorgente è la periferica di input audio predefinita del sistema.
Marco Minerva [MCPD], http://blogs.ugidotnet.org/marcom -
domenica 8 gennaio 2012 13:17
salve,
si utilizzo WPF. Il problema credo sia proprio questo della lingua perche ho provato a scaricare degli esempi gia compilati da internet e non funzionano.
ecco i dettagli dell'errore comunque:
System.Runtime.InteropServices.COMException non è stata gestita
ErrorCode=-2147467259
Message=Errore HRESULT E_FAIL restituito da una chiamata a un componente COM.
Source=System.Speech
-
domenica 8 gennaio 2012 13:45Moderatore
salve,
si utilizzo WPF. Il problema credo sia proprio questo della lingua perche ho provato a scaricare degli esempi gia compilati da internet e non funzionano.
ecco i dettagli dell'errore comunque:
System.Runtime.InteropServices.COMException non è stata gestita
ErrorCode=-2147467259
Message=Errore HRESULT E_FAIL restituito da una chiamata a un componente COM.
Source=System.Speech
Qualche anno fa scrissi questo articolo per il Visual Basic Developer Center:http://msdn.microsoft.com/en-us/library/dd148511.aspx
Trascura il fatto che sia applicato a un add-in per Word, il codice è per WPF. Prova a vedere se magari in qualche modo ti può tornare utile.
Alessandro Del Sole
Microsoft MVP - Visual Basic: development
http://community.visual-basic.it/alessandro/ -
domenica 8 gennaio 2012 13:48grazie a entrambi! appena ho tempo provo e vi faccio sapere!
-
domenica 8 gennaio 2012 17:31
Di nulla :-)
Tienici informati!
Marco Minerva [MCPD], http://blogs.ugidotnet.org/marcom -
giovedì 19 gennaio 2012 15:59
Di nulla :-)
Tienici informati!
Marco Minerva [MCPD], http://blogs.ugidotnet.org/marcomciao, scusatemi se mi intrometto .. ma ho lo stesso problema.. solo che io uso Windows 7 home premium a 64 bit in italiano...
Come diceva marco che per farlo funzionare nel sistema italiano c'è da inserire quel codice che hai postato..
solo che io.. nel mio codice di prova che ho trovato in questo sito:
http://studentguru.gr/b/vangos/archive/2010/03/21/c-text-to-speech-amp-voice-recognition.aspx
il demo sta qui:
http://studentguru.gr/blogs/vangos/WindowsSpeechAPI/Demos.zip
http://studentguru.gr/blogs/vangos/WindowsSpeechAPI/Slides.zip
per chi non si sa muovere nei siti che hanno lingua strana.. solo che il codice è sempre in inglese e meno male...
mi dite perché non va?
l'errore mi dice questo:
System.PlatformNotSupportedException: Nessun riconoscimento installato. in System.Speech.Recognition.RecognizerBase.Initialize(SapiRecognizer recognizer, Boolean inproc) in System.Speech.Recognition.SpeechRecognitionEngine.get_RecoBase() in System.Speech.Recognition.SpeechRecognitionEngine.SetInputToDefaultAudioDevice() in VoiceRecognitionGame.MainWindow.ButtonRecognizeVoice_Click(Object sender, RoutedEventArgs e) in d:\KITT_Simulator\Demos\VoiceRecognitionGame\VoiceRecognitionGame\MainWindow.xaml.cs:riga 114 in System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) in System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) in System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) in System.Windows.UIElement.RaiseEvent(RoutedEventArgs e) in System.Windows.Controls.Primitives.ButtonBase.OnClick() in System.Windows.Controls.Button.OnClick()
grazie mille.
come mai?
-
giovedì 19 gennaio 2012 16:33
Il riconoscimento vocale viene installato solo nel sistema operativo è presente una delle lingue supportate. Poiché tu hai la versione italiana, per abilitare il riconoscimento vocale, dovresti avere almeno il language pack per la lingua inglese, che però non può essere installato sulla versione Home Premium di Windows 7 (ma solo sulla Ultimate e sulla Enterprise).
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva -
giovedì 19 gennaio 2012 16:53
Il riconoscimento vocale viene installato solo nel sistema operativo è presente una delle lingue supportate. Poiché tu hai la versione italiana, per abilitare il riconoscimento vocale, dovresti avere almeno il language pack per la lingua inglese, che però non può essere installato sulla versione Home Premium di Windows 7 (ma solo sulla Ultimate e sulla Enterprise).
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominervagrazie mille. ma se acquisto o meglio mi faccio comprare una copia di windows home premium in inglese..da un mio amico che in estate va a lavoro a los angeles e dopo lo posso installare qui in italia con il codice originale quello americano?
ha scordavo almeno quello c'è il riconoscimento vocale?
grazie.
- Modificato GigiCS giovedì 19 gennaio 2012 16:55
-
giovedì 19 gennaio 2012 17:02Sì, lo puoi tranquillamente installare, e la versione Home Premium include il riconoscimento vocale, come descritto qui: http://windows.microsoft.com/en-US/windows-vista/products/features/productivity.
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva

