Ingesloten spraak

Embedded Speech is ontworpen voor spraak-naar-tekst en tekst-naar-spraakscenario's op apparaten waarbij cloudconnectiviteit af en toe of niet beschikbaar is. U kunt bijvoorbeeld ingesloten spraak gebruiken in industriële apparatuur, een airconditioning-eenheid met spraak of een auto die buiten het bereik kan vallen. U kunt ook hybride cloud- en offlineoplossingen ontwikkelen. Voor scenario's waarin uw apparaten zich in een beveiligde omgeving moeten bevinden, zoals een bank of overheidsentiteit, moet u eerst overwegen om niet-verbonden containers te overwegen.

Belangrijk

Microsoft beperkt de toegang tot ingesloten spraak. U kunt toegang aanvragen via de beperkte toegangsbeoordeling voor ingesloten spraak in Azure AI Speech. Zie Beperkte toegang voor ingesloten spraak voor meer informatie.

Platformvereisten

Ingesloten spraak is opgenomen in de Speech SDK (versie 1.24.1 en hoger) voor C#, C++en Java. Raadpleeg de algemene installatievereisten voor de Speech SDK voor programmeertaal en specifieke details van het doelplatform.

Uw doelomgeving kiezen

Vereist Android 7.0 (API-niveau 24) of hoger op Arm64 (arm64-v8a) of Arm32 (armeabi-v7a) hardware.

Ingesloten TTS met neurale stemmen wordt alleen ondersteund op Arm64.

Beperkingen

Ingesloten spraak is alleen beschikbaar met C#-, C++- en Java-SDK's. De andere Speech SDK's, Speech CLI en REST API's bieden geen ondersteuning voor ingesloten spraak.

Ingesloten spraakherkenning ondersteunt alleen mono-16-bits, 8-kHz- of 16-kHz PCM-gecodeerde WAV-audio-indelingen.

Ingesloten neurale stemmen ondersteunen 24 kHz RIFF/RAW, met een RAM-vereiste van 100 MB.

Sdk-pakketten voor ingesloten spraak

Installeer voor C#-ingesloten toepassingen de volgende Speech SDK voor C#-pakketten:

Pakket Beschrijving
Microsoft.CognitiveServices.Speech Vereist voor het gebruik van de Speech SDK
Microsoft.CognitiveServices.Speech.Extension.Embedded.SR Vereist voor ingesloten spraakherkenning
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS Vereist voor ingesloten spraaksynthese
Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime Vereist voor ingesloten spraakherkenning en synthese
Microsoft.CognitiveServices.Speech.Extension.Telemetry Vereist voor ingesloten spraakherkenning en synthese

Installeer voor C++ ingesloten toepassingen de volgende Speech SDK voor C++-pakketten:

Pakket Beschrijving
Microsoft.CognitiveServices.Speech Vereist voor het gebruik van de Speech SDK
Microsoft.CognitiveServices.Speech.Extension.Embedded.SR Vereist voor ingesloten spraakherkenning
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS Vereist voor ingesloten spraaksynthese
Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime Vereist voor ingesloten spraakherkenning en synthese
Microsoft.CognitiveServices.Speech.Extension.Telemetry Vereist voor ingesloten spraakherkenning en synthese

Uw doelomgeving kiezen

Voor ingesloten Java-toepassingen voegt u client-sdk-embedded (.jar) toe als een afhankelijkheid. Dit pakket ondersteunt cloud-, ingesloten en hybride spraak.

Belangrijk

Voeg geen client-sdk toe aan hetzelfde project, omdat deze alleen cloud spraakservices ondersteunt.

Volg deze stappen om de Speech SDK voor Java te installeren met behulp van Apache Maven:

  1. Installeer Apache Maven.
  2. Open een opdrachtprompt waar u het nieuwe project wilt en maak een nieuw pom.xml bestand.
  3. Kopieer de volgende XML-inhoud naar 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.37.0</version>
            </dependency>
        </dependencies>
    </project>
    
  4. Voer de volgende Maven-opdracht uit om de Speech SDK en afhankelijkheden te installeren.
    mvn clean dependency:copy-dependencies
    

Modellen en stemmen

Voor ingesloten spraak moet u de spraakherkenningsmodellen voor spraak naar tekst en stemmen voor tekst naar spraak downloaden. Na voltooiing van het beperkte toegangsbeoordelingsproces worden instructies gegeven.

De volgende spraak-naar-tekstmodellen zijn beschikbaar: 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 en zh-TW.

Alle tekst-naar-spraak landinstellingen (behalve fa-IR, Perzisch (Iran)) zijn standaard beschikbaar met 1 geselecteerde vrouwelijke en/of 1 geselecteerde mannelijke stemmen. We verwelkomen uw input om de vraag naar meer talen en stemmen te meten.

Configuratie van ingesloten spraak

Voor toepassingen die zijn verbonden met de cloud, zoals wordt weergegeven in de meeste Speech SDK-voorbeelden, gebruikt u het SpeechConfig object met een Spraak-resourcesleutel en -regio. Voor ingesloten spraak gebruikt u geen Spraak-resource. In plaats van een cloudresource gebruikt u de modellen en stemmen die u naar uw lokale apparaat downloadt.

Gebruik het EmbeddedSpeechConfig object om de locatie van de modellen of stemmen in te stellen. Als uw toepassing wordt gebruikt voor zowel spraak-naar-tekst als tekst-naar-spraak, kunt u hetzelfde EmbeddedSpeechConfig object gebruiken om de locatie van de modellen en stemmen in te stellen.

// 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);

Tip

De GetEnvironmentVariable functie wordt gedefinieerd in de snelstartgids voor spraak-naar-tekst en in de snelstartgids voor tekst naar spraak.

// 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);

Voorbeelden van ingesloten spraakcode

U kunt klaar zijn om ingesloten spraakvoorbeelden te gebruiken op GitHub. Zie de voorbeelden van specifieke documentatie voor opmerkingen over projecten die volledig nieuw zijn:

U kunt klaar zijn om ingesloten spraakvoorbeelden te gebruiken op GitHub. Zie de voorbeelden van specifieke documentatie voor opmerkingen over projecten die volledig nieuw zijn:

U kunt klaar zijn om ingesloten spraakvoorbeelden te gebruiken op GitHub. Zie de voorbeelden van specifieke documentatie voor opmerkingen over projecten die volledig nieuw zijn:

Hybride spraak

Hybride spraak met het HybridSpeechConfig object maakt standaard gebruik van de cloud-spraakservice en ingesloten spraak als een terugval in het geval de cloudconnectiviteit beperkt of traag is.

Met hybride spraakconfiguratie voor spraak-naar-tekst (herkenningsmodellen) wordt ingesloten spraak gebruikt wanneer de verbinding met de cloudservice mislukt na herhaalde pogingen. Herkenning kan de cloudservice opnieuw blijven gebruiken als de verbinding later wordt hervat.

Met hybride spraakconfiguratie voor tekst-naar-spraak (stemmen) worden ingesloten en cloudsynthese parallel uitgevoerd en wordt het uiteindelijke resultaat geselecteerd op basis van reactiesnelheid. Het beste resultaat wordt opnieuw geëvalueerd op elke nieuwe syntheseaanvraag.

Cloudspraak

Voor spraak in de cloud gebruikt u het SpeechConfig object, zoals wordt weergegeven in de snelstartgids voor spraak naar tekst en tekst naar spraak. Als u de quickstarts voor ingesloten spraak wilt uitvoeren, kunt u vervangen door SpeechConfigEmbeddedSpeechConfig of HybridSpeechConfig. De meeste andere spraakherkennings- en synthesecode zijn hetzelfde, ongeacht of de cloud, ingesloten of hybride configuratie wordt gebruikt.

Mogelijkheden voor ingesloten stemmen

Voor ingesloten stemmen is het essentieel om te weten dat bepaalde SSML-tags momenteel niet worden ondersteund vanwege verschillen in de modelstructuur. Raadpleeg de volgende tabel voor gedetailleerde informatie over de niet-ondersteunde SSML-tags.

Niveau 1 Niveau 2 Subwaarden Ondersteuning in ingesloten NTTS
Audio src Nee
bladwijzer Ja
einde Kracht Nee
tijd Nee
Stilte type Voorloop, tailing, komma-exact, enzovoort. Nee
waarde Nee
Nadruk niveau Nee
lang Nee
Lexicon uri Ja
Math Nee
msttsaudioduration waarde Nee
msttsbackgroundaudio src Nee
volume Nee
vervagen Nee
fadeout Nee
msttsexpress-as stijl Nee
styledegree Nee
role Nee
msttssilence Nee
msttsviseme type redlips_front, FacialExpression Nee
nm Ja
phoneme Alfabet ipa, sapi, ups, enzovoort. Ja
Ph Ja
Prosodie Contour Ondersteuning voor zinnenniveau, alleen woordniveau en-US en zh-CN Ja
Worp Ja
range Ja
Tarief Ja
volume Ja
s Ja
say-as interpret-as tekens, spelling, number_digit, datum, enzovoort. Ja
indeling Ja
gedetailleerd Ja
sub alias Ja
Spreken Ja
voice Nee

Volgende stappen