Freigeben über


Was ist eingebettete Sprache?

Eingebettete Sprache ist für die Geräteszenarien Spracherkennung und Sprachsynthese konzipiert, in denen die Cloud-Konnektivität zeitweilig oder nicht verfügbar ist. Sie können beispielsweise eingebettete Sprache in industriell eingesetzten Geräten, einer sprachgesteuerten Klimaanlage oder einem Fahrzeug verwenden, das außerhalb der Reichweite fahren kann. Sie können auch Hybrid Cloud- und Offline-Lösungen entwickeln. In Szenarien, in denen sich Ihre Geräte in einer sicheren Umgebung wie einer Bank- oder Behörden-Entität befinden müssen, sollten Sie zunächst getrennte Container in Betracht ziehen.

Wichtig

Microsoft schränkt den Zugriff auf eingebettete Sprache ein. Sie können den Zugriff über die eingeschränkte Zugriffsüberprüfung für eingebettete Sprache von Azure KI Speech beantragen. Weitere Informationen finden Sie unter Eingeschränkter Zugriff für eingebettete Sprache.

Plattformanforderungen

Eingebettete Sprache ist im Speech-SDK (Version 1.24.1 und höher) für C#, C++ und Java enthalten. Einzelheiten zu Programmiersprachen und Zielplattformen finden Sie in den allgemeinen Installationsanforderungen für das Speech-SDK.

Auswählen Ihrer Zielumgebung

Erfordert Android 7.0 (API-Ebene 24) oder höher auf Arm64- (arm64-v8a) oder Arm32-Hardware (armeabi-v7a).

Eingebettetes TTS mit neuronalen Stimmen wird nur auf Arm64 unterstützt.

Einschränkungen

Eingebettete Sprache ist nur mit C#-, C++- und Java-SDKs verfügbar. Die anderen Speech-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 neuronale Stimmen unterstützen 24 kHz RIFF/RAW mit einer RAM-Anforderung von 100 MB.

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 eingebettete Java-Anwendungen client-sdk-embedded (.jar) als Abhängigkeit hinzu. Dieses Paket unterstützt Cloud-, eingebettete und hybride Sprache.

Wichtig

Fügen Sie demselben Projekt nicht das Client-SDK hinzu, da es nur Cloud-Sprachdienste unterstützt.

Führen Sie die folgenden Schritte aus, um das Speech SDK für Java mithilfe von Apache Maven zu installieren:

  1. Installieren Sie Apache Maven.
  2. Öffnen Sie am gewünschten Speicherort für das neue Projekt eine Eingabeaufforderung, und erstellen Sie eine neue pom.xml-Datei.
  3. 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.42.0</version>
            </dependency>
        </dependencies>
    </project>
    
  4. 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 Sprache müssen Sie die Spracherkennungsmodelle für die Spracherkennung und Stimmen für die Sprachsynthese herunterladen. Anweisungen werden nach erfolgreichem Abschluss des Prozesses zur eingeschränkten Zugriffsüberprüfung bereitgestellt.

Folgende Sprache-in-Text-Modelle stehen zur Verfügung: 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, and 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 Anregungen, die uns helfen, den Bedarf an weiteren Sprachen und Stimmen zu ermitteln.

Eingebettete Sprachkonfiguration

Für mit der Cloud verbundene Anwendungen verwenden Sie, wie in den meisten Speech SDK-Beispielen gezeigt, das Objekt SpeechConfig mit einem Speech-Ressourcenschlüssel und einer Region. Für eingebettete Sprache verwenden Sie keine Speech-Ressource. Anstelle einer Cloudressource verwenden Sie die Modelle und Stimmen, die Sie auf Ihr lokales Gerät heruntergeladen haben.

Verwenden Sie das Objekt EmbeddedSpeechConfig, um die Position der Modelle oder Stimmen festzulegen. Wenn Ihre Anwendung sowohl für Spracherkennung als auch für Sprachsynthese 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 Funktion GetEnvironmentVariable wird im Schnellstart für Spracherkennung und im Schnellstart für Sprachsynthese 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 finden einsatzbereite Beispiele für eingebettete Spracherkennungen auf GitHub. Hinweise zu kompletten Projekten finden Sie in der Dokumentation zu den einzelnen Beispielen:

Sie finden einsatzbereite Beispiele für eingebettete Spracherkennungen auf GitHub. Hinweise zu kompletten Projekten finden Sie in der Dokumentation zu den einzelnen Beispielen:

Sie finden einsatzbereite Beispiele für eingebettete Spracherkennungen auf GitHub. Hinweise zu kompletten Projekten finden Sie in der Dokumentation zu den einzelnen Beispielen:

Hybridsprache

Hybridsprache mit dem Objekt HybridSpeechConfig verwendet standardmäßig den Cloud Speech-Dienst und eingebettete Sprache als Fallback für den Fall, dass die Cloud-Konnektivität eingeschränkt oder langsam ist.

Bei der hybriden Sprachkonfiguration für Spracherkennung (Erkennungsmodelle) wird eingebettete Sprache verwendet, wenn die Verbindung zum Cloud-Dienst nach wiederholten Versuchen fehlschlägt. Die Erkennung kann den Clouddienst erneut verwenden, wenn die Verbindung später fortgesetzt wird.

Bei der hybriden Sprachkonfiguration für Sprachsynthese (Stimmen) werden die eingebettete und die Cloud-Synthese parallel ausgeführt und das Endergebnis wird basierend auf der Antwortgeschwindigkeit ausgewählt. Das beste Ergebnis wird bei jeder neuen Syntheseanforderung erneut ausgewertet.

Cloud-Sprache

Für die Cloud-Sprache verwenden Sie das Objekt SpeechConfig, wie im Schnellstart für Spracherkennung und im Schnellstart für Sprachsynthese dargestellt. Um die Schnellstarts für eingebettete Sprache auszuführen, können Sie SpeechConfig durch EmbeddedSpeechConfig oder HybridSpeechConfig ersetzen. Die meisten anderen Spracherkennungs- und Synthese-Codes sind identisch, unabhängig davon, ob cloudbasierte, eingebettete oder hybride Konfigurationen verwendet werden.

Funktionen für eingebettete Stimmen

Bei eingebetteten Stimmen ist es wichtig, zu beachten, dass bestimmte SSML-Tags aufgrund von Unterschieden in der Modellstruktur derzeit vielleicht nicht unterstützt werden. Ausführliche Informationen zu den nicht unterstützten SSML-Tags finden Sie in der folgenden Tabelle.

Level 1 Level 2 Unterwerte Unterstützung in eingebettetem NTTS
audio src Nein
Lesezeichen (bookmark) Ja
break strength Ja
time Ja
Stille Typ Vorangestellt, Nachgestellt, Komma-genau usw. Nein
value Nein
emphasis Level Nein
lang Nein
lexicon uri Ja
mathematisch Nein
msttsaudioduration value Nein
msttsbackgroundaudio src Nein
Volume Nein
fadein Nein
fadeout Nein
msttsexpress-as style Nein
styledegree Nein
role Nein
msttssilence Nein
msttsviseme Typ redlips_front, FacialExpression Nein
p Ja
phoneme Alphabet ipa, sapi, ups usw. Ja
ph Ja
Prosodie contour Unterstützung auf Satzebene, en-US und zh-CN nur Wortebene Ja
pitch Ja
range Ja
rate Ja
Volume Ja
s Ja
Sagen als interpret-as Zeichen, Buchstabieren, number_digit, Datum usw. Ja
format Ja
detail Ja
sub alias Ja
speak Ja
voice No