Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Riconoscimento vocale incorporato è progettato per scenari di riconoscimento vocale e sintesi vocale sul dispositivo in cui la connettività cloud è intermittente o non disponibile. Ad esempio, è possibile usare la voce integrata in apparecchiature industriali, un'unità di aria condizionata dotata di comando vocale o un'auto che potrebbe uscire dal raggio d'azione. È anche possibile sviluppare soluzioni cloud ibride e offline. Per gli scenari in cui i dispositivi devono trovarsi in un ambiente sicuro, ad esempio una banca o un'entità governativa, è necessario considerare prima di tutto i contenitori disconnessi.
Importante
Microsoft limita l'accesso al riconoscimento vocale incorporato. È possibile richiedere l'accesso tramite Azure Speech nei Foundry Tools embedded speech limited access review. Per altre informazioni, vedere Accesso limitato per il riconoscimento vocale incorporato.
Requisiti della piattaforma
Il riconoscimento vocale incorporato è incluso in Speech SDK (versione 1.24.1 e successive) per C#, C++ e Java. Vedere i requisiti generali di installazione di Speech SDK per i dettagli specifici del linguaggio di programmazione e della piattaforma di destinazione.
Di seguito sono riportate stime generali del consumo di memoria con riconoscimento vocale incorporato. I numeri finali dipendono dalla configurazione delle funzionalità.
- Riconoscimento vocale o traduzione: dimensioni totali dei file di un modello + 200 MB.
- Sintesi vocale: 100-200 MB a seconda delle impostazioni locali.
Scegliere l'ambiente di destinazione
Richiede Android 8.0 (livello API 26) o versione successiva nell'hardware Arm64 (arm64-v8a) o Arm32 (armeabi-v7a).
Limitazioni
- Il riconoscimento vocale incorporato è disponibile solo con gli SDK C#, C++e Java. Gli altri SDK di Speech, l'interfaccia della riga di comando di Speech e le API REST non supportano la funzionalità vocale incorporata.
- Il riconoscimento vocale incorporato supporta solo formati audio WAV mono a 16 bit con frequenza di campionamento di 8 kHz o 16 kHz e codifica PCM.
- Le voci neurali incorporate supportano i formati 16 o 24 kHz RIFF/RAW.
Pacchetti di Speech SDK incorporati
Per le applicazioni incorporate C#, installare i pacchetti Speech SDK per C#seguenti:
| Pacchetto | Descrizione |
|---|---|
| Microsoft. CognitiveServices.Speech | Obbligatorio per usare Speech SDK |
| Microsoft. CognitiveServices.Speech.Extension.Embedded.SR | Obbligatorio per il riconoscimento vocale incorporato |
| Microsoft. CognitiveServices.Speech.Extension.Embedded.TTS | Obbligatorio per la sintesi vocale incorporata |
| Microsoft. CognitiveServices.Speech.Extension.ONNX.Runtime | Obbligatorio per il riconoscimento vocale incorporato e la sintesi |
| Microsoft.CognitiveServices.Speech.Extension.Telemetry | Obbligatorio per il riconoscimento vocale incorporato e la sintesi |
Per le applicazioni incorporate C++, installare i pacchetti Speech SDK per C++seguenti:
| Pacchetto | Descrizione |
|---|---|
| Microsoft. CognitiveServices.Speech | Obbligatorio per usare Speech SDK |
| Microsoft. CognitiveServices.Speech.Extension.Embedded.SR | Obbligatorio per il riconoscimento vocale incorporato |
| Microsoft. CognitiveServices.Speech.Extension.Embedded.TTS | Obbligatorio per la sintesi vocale incorporata |
| Microsoft. CognitiveServices.Speech.Extension.ONNX.Runtime | Obbligatorio per il riconoscimento vocale incorporato e la sintesi |
| Microsoft.CognitiveServices.Speech.Extension.Telemetry | Obbligatorio per il riconoscimento vocale incorporato e la sintesi |
Scegliere l'ambiente di destinazione
Per Java applicazioni incorporate, aggiungere client-sdk-embedded (.jar) come dipendenza. Questo pacchetto supporta il riconoscimento vocale cloud, incorporato e ibrido.
Importante
Non aggiungere client-sdk nello stesso progetto, perché supporta solo i servizi di riconoscimento vocale cloud.
Seguire questa procedura per installare Speech SDK per Java usando Apache Maven:
- Installare Apache Maven.
- Aprire un prompt dei comandi in cui si vuole il nuovo progetto e creare un nuovo
pom.xmlfile. - Copiare il contenuto XML seguente in
pom.xml:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.microsoft.cognitiveservices.speech.samples</groupId> <artifactId>quickstart-eclipse</artifactId> <version>1.0.0-SNAPSHOT</version> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>com.microsoft.cognitiveservices.speech</groupId> <artifactId>client-sdk-embedded</artifactId> <version>1.43.0</version> </dependency> </dependencies> </project> - Eseguire il seguente comando Maven per installare il Speech SDK e le dipendenze.
mvn clean dependency:copy-dependencies
Modelli e voci
Per il riconoscimento vocale incorporato, è necessario scaricare i modelli di riconoscimento vocale per la sintesi vocale e le voci per il riconoscimento vocale. Le istruzioni vengono fornite al completamento corretto del processo di verifica dell'accesso limitato .
Sono disponibili i modelli da voce a testo seguenti: da-DK, de-DE, en-AU, en-CA, en-GB, en-IE, en-IN, en-NZ, en-US, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, pt-PT, zh-CN, zh-HK e zh-TW.
Tutte le lingue di sintesi vocale qui (tranne fa-IR, Persiano (Iran)) sono disponibili preconfigurate con 1 voce femminile e/o 1 voce maschile selezionata. Siamo lieti di ricevere il vostro input per aiutarci a misurare la domanda di più lingue e voci.
Configurazione del riconoscimento vocale incorporato
Per le applicazioni connesse al cloud, come illustrato nella maggior parte degli esempi di Speech SDK, si usa l'oggetto SpeechConfig con una chiave API e un endpoint. Per il riconoscimento vocale incorporato, non si usa una risorsa Foundry per Voce. Anziché una risorsa cloud, si usano i modelli e le voci scaricati nel dispositivo locale.
Utilizzare l'oggetto EmbeddedSpeechConfig per impostare la posizione dei modelli o delle voci. Se l'applicazione viene usata sia per il riconoscimento vocale che per la sintesi vocale, è possibile usare lo stesso EmbeddedSpeechConfig oggetto per impostare la posizione dei modelli e delle voci.
// Provide the location of the models and voices.
List<string> paths = new List<string>();
paths.Add("C:\\dev\\embedded-speech\\stt-models");
paths.Add("C:\\dev\\embedded-speech\\tts-voices");
var embeddedSpeechConfig = EmbeddedSpeechConfig.FromPaths(paths.ToArray());
// For speech to text
embeddedSpeechConfig.SetSpeechRecognitionModel(
"Microsoft Speech Recognizer en-US FP Model V8",
Environment.GetEnvironmentVariable("EMBEDDED_SPEECH_MODEL_LICENSE"));
// For text to speech
embeddedSpeechConfig.SetSpeechSynthesisVoice(
"Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
Environment.GetEnvironmentVariable("EMBEDDED_SPEECH_MODEL_LICENSE"));
embeddedSpeechConfig.SetSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat.Riff24Khz16BitMonoPcm);
Suggerimento
La funzione GetEnvironmentVariable è definita nell'argomento di avvio rapido per il riconoscimento vocale e avvio rapido per la conversione del testo in voce.
// Provide the location of the models and voices.
vector<string> paths;
paths.push_back("C:\\dev\\embedded-speech\\stt-models");
paths.push_back("C:\\dev\\embedded-speech\\tts-voices");
auto embeddedSpeechConfig = EmbeddedSpeechConfig::FromPaths(paths);
// For speech to text
embeddedSpeechConfig->SetSpeechRecognitionModel((
"Microsoft Speech Recognizer en-US FP Model V8",
GetEnvironmentVariable("EMBEDDED_SPEECH_MODEL_LICENSE"));
// For text to speech
embeddedSpeechConfig->SetSpeechSynthesisVoice(
"Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
GetEnvironmentVariable("EMBEDDED_SPEECH_MODEL_LICENSE"));
embeddedSpeechConfig->SetSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat::Riff24Khz16BitMonoPcm);
// Provide the location of the models and voices.
List<String> paths = new ArrayList<>();
paths.add("C:\\dev\\embedded-speech\\stt-models");
paths.add("C:\\dev\\embedded-speech\\tts-voices");
var embeddedSpeechConfig = EmbeddedSpeechConfig.fromPaths(paths);
// For speech to text
embeddedSpeechConfig.setSpeechRecognitionModel(
"Microsoft Speech Recognizer en-US FP Model V8",
System.getenv("EMBEDDED_SPEECH_MODEL_LICENSE"));
// For text to speech
embeddedSpeechConfig.setSpeechSynthesisVoice(
"Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
System.getenv("EMBEDDED_SPEECH_MODEL_LICENSE"));
embeddedSpeechConfig.setSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat.Riff24Khz16BitMonoPcm);
Esempi di codice di riconoscimento vocale incorporato
È possibile trovare esempi vocali incorporati pronti all'uso su GitHub. Per le osservazioni sui progetti da zero, vedere la documentazione specifica degli esempi:
È possibile trovare esempi vocali incorporati pronti all'uso su GitHub. Per le osservazioni sui progetti da zero, vedere la documentazione specifica degli esempi:
È possibile trovare esempi vocali incorporati pronti all'uso su GitHub. Per le osservazioni sui progetti da zero, vedere la documentazione specifica degli esempi:
Voce ibrida
Il discorso ibrido con l'oggetto HybridSpeechConfig usa per impostazione predefinita il servizio di riconoscimento vocale cloud e il riconoscimento vocale incorporato come alternativa nel caso in cui la connettività cloud sia limitata o lenta.
Con la configurazione ibrida del riconoscimento vocale per da voce a testo (modelli di riconoscimento), il riconoscimento vocale incorporato viene utilizzato quando la connessione al servizio cloud fallisce dopo tentativi ripetuti. Il riconoscimento potrebbe continuare a usare di nuovo il servizio cloud se la connessione viene ripresa in un secondo momento.
Con la configurazione vocale ibrida per la sintesi vocale (voci), la sintesi incorporata e cloud vengono eseguite in parallelo e il risultato finale viene selezionato in base alla velocità di risposta. Il risultato migliore viene valutato di nuovo in ogni nuova richiesta di sintesi.
Servizi vocali nel cloud
Per il riconoscimento vocale nel cloud, si usa l'oggetto SpeechConfig , come illustrato nella guida introduttiva al riconoscimento vocale e nella guida introduttiva per il riconoscimento vocale. Per eseguire le guide introduttive per il riconoscimento vocale incorporato, è possibile sostituire SpeechConfig con EmbeddedSpeechConfig o HybridSpeechConfig. La maggior parte degli altri codici di riconoscimento vocale e sintesi vocale è identica, sia che si usi la configurazione cloud, incorporata o ibrida.
Funzionalità di voci incorporate
Per le voci incorporate, è essenziale notare che alcuni tag SSML (Speech Synthesis Markup Language) potrebbero non essere attualmente supportati a causa delle differenze nella struttura del modello. Per informazioni dettagliate sui tag SSML non supportati, vedere la tabella seguente.
| Livello 1 | Livello 2 | Valori secondari | Supporto NTTS integrato |
|---|---|---|---|
| Audio | Src | No | |
| Segnalibro | Sì | ||
| Pausa | Forza | Sì | |
| Tempo | Sì | ||
| Silenzio | digitare | Leading, Tailing, Comma-exact e così via. | No |
| Valore | No | ||
| Enfasi | Livello | No | |
| Lang | No | ||
| Lessico | Uri | Sì | |
| Matematica | No | ||
| msttsaudioduration | Valore | No | |
| msttsbackgroundaudio | Src | No | |
| Volume | No | ||
| dissolvenza | No | ||
| dissolvenza | No | ||
| msttsexpress-as | Stile | Sì1 | |
| styledegree | No | ||
| Ruolo | No | ||
| msttssilence | No | ||
| msttsviseme | digitare | redlips_front, EspressioneFacciale | No |
| P | Sì | ||
| Fonema | Alfabeto | ipa, sapi, ups, ecc. | Sì |
| pH | Sì | ||
| Prosodia | Contorno | Supporto a livello di frasi, solo en-US e zh-CN a livello di parola | Sì |
| Tono | Sì | ||
| Gamma | Sì | ||
| Tasso | Sì | ||
| Volume | Sì | ||
| s | Sì | ||
| say-as | interpreta come | caratteri, ortografia, numero_cifra, data e così via. | Sì |
| Formato | Sì | ||
| Dettaglio | Sì | ||
| Sub | Alias | Sì | |
| Parlare | Sì | ||
| Voce | No |
1 Lo msttsexpress-as stile è supportato solo per la en-US-JennyNeural voce.