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 Zugriff ü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. Die allgemeinen Sprach-SDK-Installationsanforderungen für programmiersprache und zielplattformspezifische Details finden Sie in den allgemeinen Installationsanforderungen des Speech SDK.
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
- Eingebettete Spracherkennung ist nur mit C#-, C++- und Java-SDKs verfügbar. Die anderen Sprach-SDKs, Speech CLI und REST-APIs unterstützen keine eingebettete Sprache.
- 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
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 Text-zu-Sprache-Orte hier (außer fa-IR, Persisch (Iran)) sind sofort verfügbar mit entweder einer ausgewählten weiblichen Stimme und/oder einer ausgewählten männlichen Stimme. 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);
Eingebettete Sprachcodebeispiele
Sie können vorbereitete eingebettete Sprachproben auf GitHub finden. Hinweise zu Projekten von Grund auf neu finden Sie in beispielspezifischen Dokumentationen:
Sie können vorbereitete eingebettete Sprachproben auf GitHub finden. Hinweise zu Projekten von Grund auf neu finden Sie in beispielspezifischen Dokumentationen:
Sie können vorbereitete eingebettete Sprachproben auf GitHub finden. Hinweise zu Projekten von Grund auf neu finden Sie in beispielspezifischen Dokumentationen:
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.
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 | Führend, Nachlaufend, 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, etc. | Ja |
| Ph | Ja | ||
| Prosodie | Kontur | Unterstützung auf Satzebene, nur auf Wortebene für en-US und zh-CN | Ja |
| Präsentation | Ja | ||
| Bereich | Ja | ||
| Geschwindigkeit | Ja | ||
| Volumen | Ja | ||
| s | Ja | ||
| spreche-als | interpretieren als | 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.