Wat is 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:
- Installeer Apache Maven.
- Open een opdrachtprompt waar u het nieuwe project wilt en maak een nieuw
pom.xml
bestand. - 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.40.0</version> </dependency> </dependencies> </project>
- 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("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);
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("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);
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 SpeechConfig
EmbeddedSpeechConfig
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 | Ja | |
tijd | Ja | ||
stilte | type | Voorloop, tailing, komma-exact, enzovoort. | Nee |
waarde | Nee | ||
nadruk | niveau | Nee | |
lang | Nee | ||
lexicon | uri | Ja | |
wiskunde | 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 | ||
foneem | alfabet | ipa, sapi, ups, enzovoort. | Ja |
Ph | Ja | ||
prosodie | contour | Ondersteuning voor zinnenniveau, alleen woordniveau en-US en zh-CN | Ja |
toonhoogte | Ja | ||
range | Ja | ||
verhouding | 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 |