Vad är inbäddat tal?
Embedded Speech är utformat för tal till text och text till tal på enheten där molnanslutningen är tillfällig eller otillgänglig. Du kan till exempel använda inbäddat tal i industriell utrustning, en röstaktiverad luftkonditioneringsenhet eller en bil som kan färdas utom räckhåll. Du kan också utveckla hybridmoln- och offlinelösningar. För scenarier där dina enheter måste vara i en säker miljö som en bank- eller myndighetsentitet bör du först överväga frånkopplade containrar.
Viktigt!
Microsoft begränsar åtkomsten till inbäddat tal. Du kan ansöka om åtkomst via azure AI Speech embedded speech limited access review.you can apply for access through the Azure AI Speech embedded speech limited access review. Mer information finns i Begränsad åtkomst för inbäddat tal.
Plattformskrav
Inbäddat tal ingår i Speech SDK (version 1.24.1 och senare) för C#, C++och Java. Se de allmänna installationskraven för Speech SDK för programmeringsspråk och specifik information om målplattformen.
Välj målmiljö
Kräver Android 7.0 (API-nivå 24) eller högre på Maskinvara för Arm64 (arm64-v8a
) eller Arm32 (armeabi-v7a
).
Inbäddad TTS med neurala röster stöds endast på Arm64.
Begränsningar
Inbäddat tal är endast tillgängligt med SDK:er för C#, C++ och Java. De andra Speech SDK:erna, Speech CLI och REST API:er stöder inte inbäddat tal.
Inbäddad taligenkänning stöder endast mono 16-bitars, 8 kHz eller 16 kHz PCM-kodade WAV-ljudformat.
Inbäddade neurala röster stöder 24 kHz RIFF/RAW, med ett RAM-krav på 100 MB.
SDK-paket för inbäddade tal
För C#-inbäddade program installerar du följande Speech SDK för C#-paket:
Paket | beskrivning |
---|---|
Microsoft.CognitiveServices.Speech | Krävs för att använda Speech SDK |
Microsoft.CognitiveServices.Speech.Extension.Embedded.SR | Krävs för inbäddad taligenkänning |
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS | Krävs för inbäddad talsyntes |
Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime | Krävs för inbäddad taligenkänning och syntes |
Microsoft.CognitiveServices.Speech.Extension.Telemetry | Krävs för inbäddad taligenkänning och syntes |
För C++-inbäddade program installerar du följande Speech SDK för C++-paket:
Paket | beskrivning |
---|---|
Microsoft.CognitiveServices.Speech | Krävs för att använda Speech SDK |
Microsoft.CognitiveServices.Speech.Extension.Embedded.SR | Krävs för inbäddad taligenkänning |
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS | Krävs för inbäddad talsyntes |
Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime | Krävs för inbäddad taligenkänning och syntes |
Microsoft.CognitiveServices.Speech.Extension.Telemetry | Krävs för inbäddad taligenkänning och syntes |
Välj målmiljö
För Java Embedded-program lägger du till client-sdk-embedded (.jar
) som ett beroende. Det här paketet stöder moln-, inbäddad- och hybridtal.
Viktigt!
Lägg inte till klient-sdk i samma projekt, eftersom det endast stöder molntjänster för tal.
Följ de här stegen för att installera Speech SDK för Java med Apache Maven:
- Installera Apache Maven.
- Öppna en kommandotolk där du vill ha det nya projektet och skapa en ny
pom.xml
fil. - Kopiera följande XML-innehåll till
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.40.0</version> </dependency> </dependencies> </project>
- Kör följande Maven-kommando för att installera Speech SDK och beroenden.
mvn clean dependency:copy-dependencies
Modeller och röster
För inbäddat tal måste du ladda ned taligenkänningsmodellerna för tal till text och röster för text till tal. Instruktioner ges när granskningsprocessen för begränsad åtkomst har slutförts.
Följande tal till textmodeller är tillgängliga: 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 och zh-TW.
All text till talspråk här (förutom fa-IR, persiska (Iran)) är tillgängliga ur lådan med antingen 1 vald kvinna och/eller 1 valda manliga röster. Vi välkomnar dina synpunkter för att hjälpa oss att mäta efterfrågan på fler språk och röster.
Inbäddad talkonfiguration
För molnanslutna program, som du ser i de flesta Speech SDK-exempel, använder SpeechConfig
du objektet med en Speech-resursnyckel och region. För inbäddat tal använder du inte en Speech-resurs. I stället för en molnresurs använder du de modeller och röster som du laddar ned till din lokala enhet.
Använd objektet EmbeddedSpeechConfig
för att ange platsen för modellerna eller rösterna. Om programmet används för både tal till text och text till tal kan du använda samma EmbeddedSpeechConfig
objekt för att ange platsen för modellerna och rösterna.
// 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);
Dricks
Funktionen GetEnvironmentVariable
definieras i snabbstarten tal till text och snabbstart för text till tal.
// 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);
Inbäddade talkodsexempel
Du kan hitta redo att använda inbäddade talexempel på GitHub. Kommentarer om projekt från grunden finns i exempelspecifik dokumentation:
Du kan hitta redo att använda inbäddade talexempel på GitHub. Kommentarer om projekt från grunden finns i exempelspecifik dokumentation:
Du kan hitta redo att använda inbäddade talexempel på GitHub. Kommentarer om projekt från grunden finns i exempelspecifik dokumentation:
Hybridtal
Hybridtal med HybridSpeechConfig
objektet använder molntaltjänsten som standard och inbäddat tal som reserv om molnanslutningen är begränsad eller långsam.
Med hybridtalkonfiguration för tal till text (igenkänningsmodeller) används inbäddat tal när anslutningen till molntjänsten misslyckas efter upprepade försök. Igenkänningen kan fortsätta att använda molntjänsten igen om anslutningen återupptas senare.
Med hybridtalskonfiguration för text till tal (röster) körs inbäddad och molnsyntes parallellt och slutresultatet väljs baserat på svarshastighet. Det bästa resultatet utvärderas igen för varje ny syntesbegäran.
Molntal
För molntal använder SpeechConfig
du objektet, som du ser i snabbstarten tal till text och snabbstart för text till tal. Om du vill köra snabbstarterna för inbäddat tal kan du ersätta SpeechConfig
med EmbeddedSpeechConfig
eller HybridSpeechConfig
. De flesta andra taligenkännings- och synteskoder är desamma, oavsett om du använder moln-, inbäddad- eller hybridkonfiguration.
Funktioner för inbäddade röster
För inbäddade röster är det viktigt att observera att vissa SSML-taggar kanske inte stöds för närvarande på grund av skillnader i modellstrukturen. Detaljerad information om de SSML-taggar som inte stöds finns i följande tabell.
Nivå 1 | Nivå 2 | Undervärden | Stöd i inbäddad NTTS |
---|---|---|---|
ljud | src | Nej | |
bokmärke | Ja | ||
paus | styrka | Ja | |
time | Ja | ||
tystnad | type | Inledande, tailing, komma-exakt, etc. | Nej |
värde | Nej | ||
eftertryck | nivå | Nej | |
Lang | Nej | ||
lexikon | uri | Ja | |
matematik | Nej | ||
msttsaudioduration | värde | Nej | |
msttsbackgroundaudio | src | Nej | |
volym | Nej | ||
fadein | Nej | ||
Fadeout | Nej | ||
msttsexpress-as | style | Nej | |
styledegree | Nej | ||
roll | Nej | ||
msttssilence | Nej | ||
msttsviseme | type | redlips_front, FacialExpression | Nej |
p | Ja | ||
fonem | alfabet | ipa, sapi, ups osv. | Ja |
pH | Ja | ||
prosodi | kontur | Stöd för meningsnivå, endast ordnivå en-US och zh-CN | Ja |
tonhöjd | Ja | ||
intervall | Ja | ||
taxera | Ja | ||
volym | Ja | ||
s | Ja | ||
say-as | tolka som | tecken, stavning, number_digit, datum osv. | Ja |
format | Ja | ||
detalj | Ja | ||
under | alias | Ja | |
tala | Ja | ||
voice | Nej |