Non riesco a vedere da codice il linguaggio italiano fra quelli installati per il riconoscimento vocale

di surfernet il
6 risposte
Ciao a tutti ,
non riesco a vedere da codice il linguaggio italiano come tra quelli installati ,
System.Collections.ObjectModel.ReadOnlyCollection<RecognizerInfo> ri = SpeechRecognitionEngine.InstalledRecognizers();
risultano installati inglese francese e tedesco ma l'italiano non risulta da codice , in impostazioni-> data ora e lingua risultano installate tutte e quattro(italiano compreso) , se eseguo SpeechRecognitionEngine rec = new SpeechRecognitionEngine(); senza indicare una cultura la lingua di default risulta l'inglese-americano (en-US) ovvero "sembrerebbe" la lingua di default mentre è settato l'italiano come lingua di default del sistema (https://docs.microsoft.com/it-it/dotnet/api/system.speech.recognition.speechrecognitionengine.-ctor?view=netframework-4.8#System_Speech_Recognition_SpeechRecognitionEngine__ctor) ,in pratica non riesco ad istanziare un SpeechRecognitionEngine che lavori con l'italiano , qualche consiglio? ,se mi sono spiegato male chiedete pure , grazie,ciao

6 Risposte

  • Ributto la palla
  • Non riersci perchè l'italiano per quello che devi fare tu non è installato,devi acquistare il pacchetto delle voci in italiano.
  • Sono installati 3 pacchetti voci : francese,italiano,inglese ma SpeechRecognitionEngine.InstalledRecognizers() trova solo inglese e francese ,

    ho provato a disinstallare e reinstallare l'italiano ma la situazione non cambia
  • Posta il codice e sopratutto le imports.
  • using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Globalization;
    using System.Speech.Recognition;
    using System.Speech.Synthesis;
    System.Collections.ObjectModel.ReadOnlyCollection<RecognizerInfo> ri = SpeechRecognitionEngine.InstalledRecognizers();
    mettendo un break sulla riga che contiene "ri" posso vedere il numero degli InstalledRecognizer e l'oggetto RecognizerInfo per ognuno e l'italiano non c'è mai
    in "riconoscimento vocale" trovo le tre lingue: inglese,francese,italiano ,la loro grandezza in mega è molto differente : inglese 130 mb , francese 94 , italiano 75 , l'inglese ha più parole e va bene ma la differenze tra francese ed italiano non è un pò eccessiva?
  • Fai imports anche con questo
    
    Imports System.Speech
    
    Come tu sai,in quasi tutti i forum di programmazione la pappa pronta non è contemplata,c'è un modo a livello di programmazione di vedere quali lingue sono installate...io uso vb.net
    questo è una parte di codice,giusto per darti un aiuto.
    
    Imports System.Speech
    Imports System.Speech.Recognition
    Imports System.Speech.Synthesis
    Imports System.Globalization
    
    Public Class Form1
        Dim Synt As New SpeechSynthesizer
    
    Come stai compilando?x64 o x86?..a me è successo che avendo installato il software e avendo compilato qualsiasi cpu(ti parlo di vs 2008)e qualsiasi piattaforma non riconosceva la voce installata,cambiata la piattaforma per x86,tutto a posto.
Devi accedere o registrarti per scrivere nel forum
6 risposte