Dela via


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:

  1. Installera Apache Maven.
  2. Öppna en kommandotolk där du vill ha det nya projektet och skapa en ny pom.xml fil.
  3. 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.38.0</version>
            </dependency>
        </dependencies>
    </project>
    
  4. 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("MODEL_KEY"));

// For text to speech
embeddedSpeechConfig.SetSpeechSynthesisVoice(
    "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
    Environment.GetEnvironmentVariable("VOICE_KEY"));
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("MODEL_KEY"));

// For text to speech
embeddedSpeechConfig->SetSpeechSynthesisVoice(
    "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
    GetEnvironmentVariable("VOICE_KEY"));
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("MODEL_KEY"));

// For text to speech
embeddedSpeechConfig.setSpeechSynthesisVoice(
    "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
    System.getenv("VOICE_KEY"));
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 snabbstartental 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
Bryta Styrka Nej
time Nej
Tystnad type Inledande, tailing, komma-exakt, etc. Nej
värde Nej
Betoning 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 Alfabetet ipa, sapi, ups osv. Ja
Ph Ja
prosody Kontur Stöd för meningsnivå, endast ordnivå en-US och zh-CN Ja
Pitch Ja
intervall Ja
Betygsätt 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

Nästa steg