Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eingebettete Sprachverarbeitung ist für Sprache-zu-Text und Text-zu-Sprache-Szenarien auf Geräten konzipiert, in denen die Cloudkonnektivität zeitweise oder nicht verfügbar ist. Sie können z. B. eingebettete Spracherkennungen in Industriegeräten, eine sprachfähige Klimaanlage oder ein Auto verwenden, das außerhalb der Reichweite reisen kann. Sie können auch Hybrid-Cloud- und Offlinelösungen entwickeln. Für Szenarien, in denen Sich Ihre Geräte in einer sicheren Umgebung wie einer Bank- oder Regierungsentität befinden müssen, sollten Sie zuerst getrennte Container in Betracht ziehen.
Wichtig
Microsoft beschränkt den Zugriff auf eingebettete Sprache. Sie können den Zugang über die Azure Speech in Foundry Tools embedded speech limited access review beantragen. Weitere Informationen finden Sie unter Eingeschränkter Zugriff für eingebettete Spracherkennung.
Plattformanforderungen
Eingebettete Spracherkennung ist im Speech SDK (Version 1.24.1 und höher) für C#, C++ und Java enthalten und mit dem Speech SDK für Python (Version 1.51.0 und höher). Die allgemeinen Sprach-SDK-Installationsanforderungen für programmiersprache und zielplattformspezifische Details finden Sie in den allgemeinen Installationsanforderungen des Speech SDK.
Eingebettete Spracherkennung mit dem Speech SDK für Python wird unter Windows (x64, Arm64), Linux (x64, Arm64) und macOS (x64, Arm64) unterstützt. Python unterstützt keine eingebettete Sprache unter Android.
Eingebettete Spracherkennung mit dem Speech SDK für Go (Version 1.51.0 und höher) wird unter Linux (x64, Arm64, Arm32) unterstützt. Go unterstützt eingebettete Spracherkennung unter Android nicht.
Im Folgenden werden allgemeine Schätzungen des Arbeitsspeicherverbrauchs mit eingebetteter Sprache beschrieben. Die endgültigen Zahlen hängen von der Featurekonfiguration ab.
- Spracherkennung oder Übersetzung: Gesamtgröße der Dateien eines Modells + 200 MB.
- Sprachsynthese: 100-200 MB je nach Spracheinstellung.
Auswählen Ihrer Zielumgebung
Erfordert Android 8.0 (API-Ebene 26) oder höher auf Arm64 (arm64-v8a) oder Arm32 () Hardwarearmeabi-v7a.
Einschränkungen
- Nur die C#-, C++-, Java-, Python- und Go-SDKs unterstützen eingebettete Spracherkennung. Die anderen Sprach-SDKs, Speech CLI und REST-APIs unterstützen keine eingebettete Sprache.
- Das Speech SDK für Python und das Speech SDK für Go unterstützen keine Hybridsprache (
HybridSpeechConfig). Verwenden Sie das C#-, C++- oder Java SDK für Hybridszenarien. - Eingebettete Spracherkennung unterstützt nur mono 16-Bit-, 8-kHz- oder 16-kHz-PCM-codierte WAV-Audioformate.
- Eingebettete neurale Stimmen unterstützen 16 oder 24 kHz RIFF/RAW.
Eingebettete Sprach-SDK-Pakete
Installieren Sie für eingebettete C#-Anwendungen die folgenden Speech SDK für C#-Pakete:
| Paket | Beschreibung |
|---|---|
| Microsoft. CognitiveServices.Speech | Erforderlich für die Verwendung des Speech SDK |
| Microsoft. CognitiveServices.Speech.Extension.Embedded.SR | Erforderlich für eingebettete Spracherkennung |
| Microsoft. CognitiveServices.Speech.Extension.Embedded.TTS | Erforderlich für eingebettete Sprachsynthese |
| Microsoft. CognitiveServices.Speech.Extension.ONNX.Runtime | Erforderlich für eingebettete Spracherkennung und -synthese |
| Microsoft.CognitiveServices.Speech.Extension.Telemetry | Erforderlich für eingebettete Spracherkennung und -synthese |
Installieren Sie für eingebettete C++-Anwendungen die folgenden Speech SDK für C++-Pakete:
| Paket | Beschreibung |
|---|---|
| Microsoft. CognitiveServices.Speech | Erforderlich für die Verwendung des Speech SDK |
| Microsoft. CognitiveServices.Speech.Extension.Embedded.SR | Erforderlich für eingebettete Spracherkennung |
| Microsoft. CognitiveServices.Speech.Extension.Embedded.TTS | Erforderlich für eingebettete Sprachsynthese |
| Microsoft. CognitiveServices.Speech.Extension.ONNX.Runtime | Erforderlich für eingebettete Spracherkennung und -synthese |
| Microsoft.CognitiveServices.Speech.Extension.Telemetry | Erforderlich für eingebettete Spracherkennung und -synthese |
Auswählen Ihrer Zielumgebung
Fügen Sie für Java eingebettete Anwendungen client-sdk-embedded (.jar) als Abhängigkeit hinzu. Dieses Paket unterstützt Cloud-, eingebettete und hybride Spracherkennung.
Wichtig
Fügen Sie das Client-SDK nicht im selben Projekt hinzu, da es nur Cloud-Sprachdienste unterstützt.
Führen Sie die folgenden Schritte aus, um das Speech SDK für Java mit Apache Maven zu installieren:
- Installieren Sie Apache Maven.
- Öffnen Sie eine Eingabeaufforderung, an der das neue Projekt erstellt werden soll, und erstellen Sie eine neue
pom.xmlDatei. - Kopieren Sie den folgenden XML-Inhalt 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> - Führen Sie den folgenden Maven-Befehl aus, um das Speech SDK und Abhängigkeiten zu installieren.
mvn clean dependency:copy-dependencies
Installieren Sie für in Python eingebettete Anwendungen die eingebettete Variante des Speech SDK für Python, die die On-Device-Inferenzlaufzeit umfasst:
pip install azure-cognitiveservices-speech-embedded
Wichtig
Das eingebettete Paket (azure-cognitiveservices-speech-embedded) ist eine Obermenge des reinen Cloudpakets (azure-cognitiveservices-speech). Er macht denselben azure.cognitiveservices.speech Importnamespace verfügbar und unterstützt zusätzlich zu eingebetteten Szenarien alle Cloudszenarien. Installieren Sie nur eines der beiden Pakete.
Das Speech SDK für Go ist eine cgo-Bindung, sodass für eingebettete Sprachfunktionen die nativen Speech SDK-Bibliotheken beim Erstellen und zur Laufzeit erforderlich sind. Laden Sie die eingebettete Variante des systemeigenen Speech SDK-Pakets für Linux herunter, das die Laufzeiterweiterungen auf Dem Gerät enthält:
Wählen Sie ein Verzeichnis für die Speech SDK-Dateien aus, und legen Sie die
SPEECHSDK_ROOTUmgebungsvariable so fest, dass sie darauf verweist:export SPEECHSDK_ROOT="$HOME/speechsdk-embedded" mkdir -p "$SPEECHSDK_ROOT"Laden Sie die eingebetteten Speech SDK-Binärdateien herunter, und extrahieren Sie sie:
wget -O SpeechSDK-Embedded-Linux.tar.gz https://aka.ms/csspeech/linuxembeddedbinary tar --strip 1 -xzf SpeechSDK-Embedded-Linux.tar.gz -C "$SPEECHSDK_ROOT"Das eingebettete Paket ist eine erweiterte Version des Standardpakets, das nur für die Cloud verfügbar ist. Sie enthält die Kernbibliothek (
Microsoft.CognitiveServices.Speech.core), die eingebetteten Erkennungs- und Syntheselaufzeiterweiterungen und deren ONNX-Laufzeitabhängigkeit. Installieren Sie nur das eingebettete Paket, nicht beide.Richten Sie
cgoauf die nativen Header und Bibliotheken und fügen Sie den Bibliotheksordner zum Suchpfad des Loaders hinzu. Ersetzen Sie<architecture>durch die Prozessorarchitektur Ihrer CPU:x64,arm64oderarm32.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"Fügen Sie ihrem Projekt das Speech SDK für Go hinzu:
go get github.com/Microsoft/cognitive-services-speech-sdk-go
Modelle und Stimmen
Für eingebettete Spracherkennung müssen Sie die Spracherkennungsmodelle für Sprache in Text und Stimmen für Text in Sprache herunterladen. Anweisungen werden nach erfolgreichem Abschluss des Eingeschränkten Zugriffsüberprüfungsprozesses bereitgestellt.
Die folgende Spracherkennung für Textmodelle ist verfügbar: 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-HKund zh-TW.
Alle hier verfügbaren Texte zu Sprachgebietsschemas (außer fa-IR, Persisch (Iran)) sind sofort mit entweder 1 ausgewählten weiblichen und/oder 1 ausgewählten männlichen Stimme verfügbar. Wir freuen uns über Ihre Eingaben, um die Nachfrage nach mehr Sprachen und Stimmen zu messen.
Eingebettete Sprachkonfiguration
Für in der Cloud verbundene Anwendungen, wie in den meisten Sprach-SDK-Beispielen gezeigt, verwenden Sie das SpeechConfig Objekt mit einem API-Schlüssel und Endpunkt. Für eingebettete Spracherkennung verwenden Sie keine Foundry-Ressource für Sprache. Anstelle einer Cloudressource verwenden Sie die Modelle und Stimmen , die Sie auf Ihr lokales Gerät herunterladen.
Verwenden Sie das EmbeddedSpeechConfig Objekt, um die Position der Modelle oder Stimmen festzulegen. Wenn Ihre Anwendung sowohl für Sprache-zu-Text als auch für Text-zu-Sprache verwendet wird, können Sie dasselbe EmbeddedSpeechConfig Objekt verwenden, um die Position der Modelle und Stimmen festzulegen.
// 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);
Tipp
Die GetEnvironmentVariable-Funktion wird in der Sprache-zu-Text-Schnellstartanleitung und der Text-zu-Sprache-Schnellstartanleitung definiert.
// 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)
Tipp
Wenn es nur ein Modell oder einen VoIP-Pfad gibt, können Sie auch verwenden 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"))
Tipp
Wenn es nur ein Modell oder einen VoIP-Pfad gibt, können Sie auch verwenden speech.NewEmbeddedSpeechConfigFromPath(path). Die eingebettete Konfiguration verpackt eine reguläre SpeechConfig, also übergeben Sie embeddedSpeechConfig.GetSpeechConfig() an die vorhandenen Factory-Funktionen für Erkennungsmodule und Synthesizer, wie etwa NewSpeechRecognizerFromConfig.
Eingebettete Sprachcodebeispiele
Sie können vorbereitete eingebettete Sprachproben auf GitHub finden. Hinweise zu kompletten Projekten finden Sie in der Dokumentation zu den einzelnen Beispielen:
Sie können vorbereitete eingebettete Sprachproben auf GitHub finden. Hinweise zu kompletten Projekten finden Sie in der Dokumentation zu den einzelnen Beispielen:
Sie können vorbereitete eingebettete Sprachproben auf GitHub finden. Hinweise zu kompletten Projekten finden Sie in der Dokumentation zu den einzelnen Beispielen:
Sie finden einsatzbereite Sprachbeispiele für eingebettete Systeme auf GitHub. Hinweise zu von Grund auf neu erstellten Projekten finden Sie in der spezifischen Dokumentation zu den Beispielen:
Bei GitHub finden Sie einsatzbereite eingebettete Sprachbeispiele für Spracherkennung, Synthese und Übersetzung. Informationen zu Voraussetzungen, zur Einrichtung nativer Bibliotheken, zur Modell- und Sprachinstallation sowie zu Build-Flags finden Sie im Leitfaden für eingebettete Beispiele.
Hybridsprache
Hybridsprache mit dem HybridSpeechConfig Objekt verwendet standardmäßig den Cloud-Sprachdienst und eingebettete Spracherkennung als Fallback, falls die Cloudkonnektivität eingeschränkt oder langsam ist.
Bei hybrider Sprachkonfiguration für Sprache in Text (Erkennungsmodelle) wird eingebettete Sprache verwendet, wenn die Verbindung mit dem Clouddienst nach wiederholten Versuchen fehlschlägt. Die Erkennung kann den Clouddienst möglicherweise erneut verwenden, wenn die Verbindung später fortgesetzt wird.
Bei hybrider Sprachkonfiguration für Text zu Sprache (Stimmen) werden eingebettete und Cloudsynthese parallel ausgeführt, und das Endergebnis wird basierend auf der Antwortgeschwindigkeit ausgewählt. Das beste Ergebnis wird bei jeder neuen Syntheseanforderung erneut ausgewertet.
Note
Das Speech SDK für Python und das Speech SDK für Go unterstützen keine Hybridspracherkennung. Verwenden Sie das C#-, C++- oder Java SDK für Hybridszenarien.
Cloud-Spracherkennung
Bei Cloud-Spracherkennung verwenden Sie das SpeechConfig-Objekt, wie im Sprach-zu-Text-Schnellstart und Text-zu-Sprach-Schnellstart gezeigt. Um die Schnellstarts für eingebettete Sprache auszuführen, können Sie sie durch SpeechConfig oder EmbeddedSpeechConfigersetzenHybridSpeechConfig. Die meisten anderen Spracherkennungs- und Synthesecode sind identisch, unabhängig davon, ob Sie cloudbasierte, eingebettete oder Hybridkonfiguration verwenden.
Funktionen für eingebettete Stimmen
Bei eingebetteten Stimmen ist es wichtig zu beachten, dass bestimmte SSML-Tags (Speech Synthesis Markup Language) aufgrund von Unterschieden in der Modellstruktur derzeit nicht unterstützt werden. Ausführliche Informationen zu den nicht unterstützten SSML-Tags finden Sie in der folgenden Tabelle.
| Ebene 1 | Ebene 2 | Unterwerte | Unterstützung in integrierten NTTS |
|---|---|---|---|
| Audio | Src | Nein | |
| Lesezeichen | Ja | ||
| Unterbrechung | Stärke | Ja | |
| Zeit | Ja | ||
| Stille | Typ | Vorangestellt, Nachgestellt, Komma-genau usw. | Nein |
| Wert | Nein | ||
| Schwerpunkt | Ebene | Nein | |
| lang | Nein | ||
| Lexikon | Uri | Ja | |
| Mathe | Nein | ||
| msttsaudioduration | Wert | Nein | |
| msttsbackgroundaudio | Src | Nein | |
| Volumen | Nein | ||
| einblenden | Nein | ||
| Ausblendung | Nein | ||
| msttsexpress-as | Stil | Ja1 | |
| styledegree | Nein | ||
| Rolle | Nein | ||
| msttssilence | Nein | ||
| msttsviseme | Typ | redlips_front, Gesichtsausdruck | Nein |
| P | Ja | ||
| Phonem | Alphabet | ipa, sapi, ups usw. | Ja |
| Ph | Ja | ||
| Prosodie | Kontur | Unterstützung auf Satzebene, nur auf Wortebene für en-US und zh-CN | Ja |
| pitch | Ja | ||
| Bereich | Ja | ||
| rate | Ja | ||
| Volumen | Ja | ||
| s | Ja | ||
| Sagen als | interpret-as | Zeichen, Rechtschreibung, Zahl_Ziffer, Datum usw. | Ja |
| Format | Ja | ||
| Detail | Ja | ||
| sub | Alias | Ja | |
| Sprechen | Ja | ||
| Stimme | Nein |
1 Der msttsexpress-as Stil wird nur für die en-US-JennyNeural Stimme unterstützt.