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 la verifica di accesso limitato al parlato incorporato in Voce Azure in Foundry Tools. 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 e con Speech SDK per Python (versione 1.51.0 e successive). Vedere i requisiti generali di installazione di Speech SDK per i dettagli specifici del linguaggio di programmazione e della piattaforma di destinazione.
Il riconoscimento vocale incorporato con Speech SDK per Python è supportato in Windows (x64, Arm64), Linux (x64, Arm64) e macOS (x64, Arm64). Python non supporta il riconoscimento vocale incorporato in Android.
Il riconoscimento vocale incorporato con Speech SDK per Go (versione 1.51.0 e successive) è supportato in Linux (x64, Arm64, Arm32). Go non supporta il riconoscimento vocale incorporato in Android.
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
- Solo gli SDK C#, C++, Java, Python e Go supportano il riconoscimento vocale incorporato. Gli altri SDK di Speech, l'interfaccia della riga di comando di Speech e le API REST non supportano la funzionalità vocale incorporata.
- Speech SDK per Python e Speech SDK per Go non supportano la voce ibrida (
HybridSpeechConfig). Usare C#, C++o Java SDK per scenari ibridi. - 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
Per le applicazioni Python incorporate, installa la versione incorporata di Speech SDK per Python, che include il runtime di inferenza sul dispositivo:
pip install azure-cognitiveservices-speech-embedded
Importante
Il pacchetto integrato (azure-cognitiveservices-speech-embedded) è un sovrainsieme del pacchetto esclusivamente cloud (azure-cognitiveservices-speech). Espone lo stesso azure.cognitiveservices.speech namespace di importazione e supporta tutti gli scenari cloud oltre agli scenari incorporati. Installare solo uno dei due pacchetti.
Lo Speech SDK per Go è un binding cgo, quindi le funzionalità vocali incorporate richiedono le librerie native di Speech SDK sia in fase di compilazione sia in fase di esecuzione. Scaricare la variante incorporata del pacchetto Native Speech SDK per Linux, che include le estensioni di runtime sul dispositivo:
Scegliere una directory per i file di Speech SDK e impostare la
SPEECHSDK_ROOTvariabile di ambiente in modo che punti a tale directory:export SPEECHSDK_ROOT="$HOME/speechsdk-embedded" mkdir -p "$SPEECHSDK_ROOT"Scaricare ed estrarre i file binari di Speech SDK incorporati:
wget -O SpeechSDK-Embedded-Linux.tar.gz https://aka.ms/csspeech/linuxembeddedbinary tar --strip 1 -xzf SpeechSDK-Embedded-Linux.tar.gz -C "$SPEECHSDK_ROOT"Il pacchetto incorporato è un superset del pacchetto standard (solo cloud). Comprende la libreria di base (
Microsoft.CognitiveServices.Speech.core), le estensioni di runtime incorporate per il riconoscimento e la sintesi e la relativa dipendenza da ONNX Runtime. Installare solo il pacchetto incorporato, non entrambi.Puntare
cgoai file header e alle librerie native e aggiungere la cartella delle librerie al percorso di caricamento. Sostituire<architecture>con l'architettura del processore della CPU:x64,arm64oarm32.export CGO_CFLAGS="-I$SPEECHSDK_ROOT/include/c_api" export CGO_LDFLAGS="-L$SPEECHSDK_ROOT/lib/<architecture> -lMicrosoft.CognitiveServices.Speech.core" export LD_LIBRARY_PATH="$SPEECHSDK_ROOT/lib/<architecture>:$LD_LIBRARY_PATH"Aggiungere il modulo Speech SDK for Go al progetto:
go get github.com/Microsoft/cognitive-services-speech-sdk-go
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 elencate qui, a eccezione di fa-IR, Persiano (Iran), sono disponibili preconfigurate con una voce femminile e/o una voce maschile. 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 Voce incorporata, 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);
import os
import azure.cognitiveservices.speech as speechsdk
# Provide the location of the models and voices.
paths = [
"C:\\dev\\embedded-speech\\stt-models",
"C:\\dev\\embedded-speech\\tts-voices",
]
embedded_speech_config = speechsdk.EmbeddedSpeechConfig.from_paths(paths)
# For speech to text
embedded_speech_config.set_speech_recognition_model(
"Microsoft Speech Recognizer en-US FP Model V8",
os.environ.get("EMBEDDED_SPEECH_MODEL_LICENSE"))
# For text to speech
embedded_speech_config.set_speech_synthesis_voice(
"Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
os.environ.get("EMBEDDED_SPEECH_MODEL_LICENSE"))
embedded_speech_config.set_speech_synthesis_output_format(
speechsdk.SpeechSynthesisOutputFormat.Riff24Khz16BitMonoPcm)
Suggerimento
Se è presente un solo modello o percorso vocale, è anche possibile usare speechsdk.EmbeddedSpeechConfig.from_path(path).
import (
"os"
"github.com/Microsoft/cognitive-services-speech-sdk-go/speech"
)
// Provide the location of the models and voices.
paths := []string{
"/dev/embedded-speech/stt-models",
"/dev/embedded-speech/tts-voices",
}
embeddedSpeechConfig, err := speech.NewEmbeddedSpeechConfigFromPaths(paths)
if err != nil {
// Handle the error.
}
defer embeddedSpeechConfig.Close()
// For speech to text
embeddedSpeechConfig.SetSpeechRecognitionModel(
"Microsoft Speech Recognizer en-US FP Model V8",
os.Getenv("EMBEDDED_SPEECH_MODEL_LICENSE"))
// For text to speech
embeddedSpeechConfig.SetSpeechSynthesisVoice(
"Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
os.Getenv("EMBEDDED_SPEECH_MODEL_LICENSE"))
Suggerimento
Se è presente un solo modello o percorso vocale, è anche possibile usare speech.NewEmbeddedSpeechConfigFromPath(path). La configurazione integrata racchiude un normale SpeechConfig, quindi passare embeddedSpeechConfig.GetSpeechConfig() alle funzioni factory di riconoscimento e sintesi, ad esempio NewSpeechRecognizerFromConfig.
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:
È possibile trovare esempi di riconoscimento vocale incorporati pronti all'uso in GitHub. Per le osservazioni sui progetti da zero, vedere la documentazione specifica degli esempi:
È possibile trovare esempi vocali incorporati pronti all'uso per il riconoscimento vocale, la sintesi e la traduzione in GitHub. Per i prerequisiti, la configurazione della libreria nativa, l'installazione del modello e la voce e i flag di compilazione, vedere la guida agli esempi incorporati.
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.
Note
Speech SDK per Python e Speech SDK per Go non supportano il riconoscimento vocale ibrido. Usare C#, C++o Java SDK per scenari ibridi.
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 | ||
| fadein | 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 | contour | Supporto a livello di frasi, solo en-US e zh-CN a livello di parola | Sì |
| pitch | Sì | ||
| Gamma | Sì | ||
| Tasso | Sì | ||
| Volume | Sì | ||
| s | Sì | ||
| say-as | interpret-as | 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.