Mi az a beágyazott beszéd?
A Beágyazott beszéd eszközről szövegre és szövegről beszédre való beszédhez készült, ahol a felhőbeli kapcsolat időszakos vagy nem érhető el. Használhat például beágyazott beszédet ipari berendezésekben, hangalapú légkondicionáló egységben vagy olyan autóban, amely a tartományon kívülre is utazhat. Hibrid felhőalapú és offline megoldásokat is fejleszthet. Azokban az esetekben, amikor az eszközöknek biztonságos környezetben kell lenniük, például bank vagy kormányzati entitás, először érdemes megfontolni a leválasztott tárolók használatát.
Fontos
A Microsoft korlátozza a beágyazott beszédhez való hozzáférést. A hozzáférésre az Azure AI Speech embedded speech korlátozott hozzáférésű áttekintésével jelentkezhet. További információ: Korlátozott hozzáférés beágyazott beszédhez.
Platformkövetelmények
A beágyazott beszéd a Speech SDK (1.24.1-es és újabb verzió) részét képezi c#, C++ és Java esetén. Tekintse meg a Speech SDK általános telepítési követelményeit a programozási nyelvre és a célplatformra vonatkozó részletekre vonatkozóan.
A célkörnyezet kiválasztása
Az Arm64arm64-v8a
() vagy Arm32 (armeabi-v7a
) hardveren Android 7.0 (API level 24) vagy újabb verzió szükséges.
A neurális hangokkal rendelkező beágyazott TTS csak az Arm64-en támogatott.
Korlátozások
A beágyazott beszéd csak C#, C++ és Java SDK-k esetén érhető el. A többi Speech SDK, Speech CLI és REST API nem támogatja a beágyazott beszédet.
A beágyazott beszédfelismerés csak a mono 16 bites, 8 kHz-es vagy 16 kHz-es PCM-kódolású WAV hangformátumokat támogatja.
A beágyazott neurális hangok támogatják a 24 kHz-es RIFF/RAW 100 MB RAM-követelményt.
Beágyazott beszéd SDK-csomagok
Beágyazott C#-alkalmazások esetén telepítse a következő Speech SDK for C# csomagokat:
Csomag | Leírás |
---|---|
Microsoft.CognitiveServices.Speech | A Speech SDK használatához szükséges |
Microsoft.CognitiveServices.Speech.Extension.Embedded.SR | Beágyazott beszédfelismeréshez szükséges |
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS | Beágyazott beszédszintézishez szükséges |
Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime | A beágyazott beszédfelismeréshez és -szintézishez szükséges |
Microsoft.CognitiveServices.Speech.Extension.Telemetria | A beágyazott beszédfelismeréshez és -szintézishez szükséges |
C++ beágyazott alkalmazások esetén telepítse a következő Speech SDK-t C++ csomagokhoz:
Csomag | Leírás |
---|---|
Microsoft.CognitiveServices.Speech | A Speech SDK használatához szükséges |
Microsoft.CognitiveServices.Speech.Extension.Embedded.SR | Beágyazott beszédfelismeréshez szükséges |
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS | Beágyazott beszédszintézishez szükséges |
Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime | A beágyazott beszédfelismeréshez és -szintézishez szükséges |
Microsoft.CognitiveServices.Speech.Extension.Telemetria | A beágyazott beszédfelismeréshez és -szintézishez szükséges |
A célkörnyezet kiválasztása
Java-beágyazott alkalmazások esetén add client-sdk-embedded (.jar
) függvényt függőségként. Ez a csomag támogatja a felhőalapú, beágyazott és hibrid beszédet.
Fontos
Ne vegyen fel ügyféloldali sdk-t ugyanabban a projektben, mivel csak a felhőalapú beszédszolgáltatásokat támogatja.
A Java Speech SDK Apache Maven használatával történő telepítéséhez kövesse az alábbi lépéseket:
- Telepítse az Apache Maven-t.
- Nyisson meg egy parancssort, ahol az új projektet szeretné, és hozzon létre egy új
pom.xml
fájlt. - Másolja a következő XML-tartalmat a következőbe
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>
- Futtassa a következő Maven-parancsot a Speech SDK és a függőségek telepítéséhez.
mvn clean dependency:copy-dependencies
Modellek és hangok
Beágyazott beszéd esetén le kell töltenie a beszédfelismerési modelleket a szöveggé és a beszédhez használt hangokat. Útmutatást a korlátozott hozzáférésű felülvizsgálati folyamat sikeres befejezésekor adnak meg.
A következő szöveges beszédmodellek érhetők el: 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 és zh-TW.
Minden szöveg beszéd területi itt (kivéve fa-IR, perzsa (Irán)) állnak rendelkezésre dobozon kívül vagy 1 kiválasztott női és/vagy 1 kiválasztott férfi hang. Örömmel fogadjuk a bemenetét, hogy felmérhessük a további nyelvek és hangok iránti keresletet.
Beágyazott beszédkonfiguráció
A felhőalapú alkalmazások esetében, ahogyan a legtöbb Speech SDK-mintában látható, az SpeechConfig
objektumot API-kulccsal és régióval használja. Beágyazott beszéd esetén nem használ AI Services-erőforrást a Speechhez. Felhőbeli erőforrás helyett a helyi eszközre letöltött modelleket és hangokat használja.
EmbeddedSpeechConfig
Az objektummal beállíthatja a modellek vagy hangok helyét. Ha az alkalmazást beszédről szövegre és szövegről beszédre is használják, ugyanazzal EmbeddedSpeechConfig
az objektummal állíthatja be a modellek és hangok helyét.
// 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.
A GetEnvironmentVariable
függvény a beszédről szövegre rövid útmutatóban , a szövegről a beszédre rövid útmutatóban van definiálva.
// 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);
Beágyazott beszédkódminták
Beágyazott beszédmintákat a GitHubon találhat. Az alapoktól kezdve a projektekre vonatkozó megjegyzésekért tekintse meg a mintákra vonatkozó dokumentációt:
Beágyazott beszédmintákat a GitHubon találhat. Az alapoktól kezdve a projektekre vonatkozó megjegyzésekért tekintse meg a mintákra vonatkozó dokumentációt:
Beágyazott beszédmintákat a GitHubon találhat. Az alapoktól kezdve a projektekre vonatkozó megjegyzésekért tekintse meg a mintákra vonatkozó dokumentációt:
Hibrid beszéd
Az HybridSpeechConfig
objektummal való hibrid beszéd alapértelmezés szerint a felhőalapú beszédszolgáltatást használja, a beágyazott beszéd pedig tartalékként szolgál arra az esetre, ha a felhőkapcsolat korlátozott vagy lassú.
A beszédfelismerő modellek hibrid beszédkonfigurációjával beágyazott beszédet használ a rendszer, ha a felhőszolgáltatáshoz való csatlakozás ismétlődő próbálkozások után meghiúsul. Ha a kapcsolat később folytatódik, a felismerés ismét használhatja a felhőszolgáltatást.
A szövegfelolvasás (hangok) hibrid beszédkonfigurációjával a beágyazott és a felhőszintézis párhuzamosan fut, és a végeredmény a válaszsebesség alapján van kiválasztva. A legjobb eredményt minden új szintéziskérésen újra kiértékeljük.
Felhőbeli beszéd
A felhőbeli beszédhez az objektumot SpeechConfig
kell használnia, ahogy az a beszédről szövegre rövid útmutatóban és a szövegről beszédre rövid útmutatóban is látható. A beágyazott beszéd gyorsútmutatóinak futtatásához lecserélheti SpeechConfig
EmbeddedSpeechConfig
a következőre: vagy HybridSpeechConfig
. A többi beszédfelismerési és szintéziskód többsége ugyanaz, akár felhőbeli, beágyazott vagy hibrid konfigurációt használ.
Beágyazott hangok képességei
A beágyazott hangok esetében fontos megjegyezni, hogy bizonyos beszédszintézis-jelölőnyelvi (SSML-) címkék jelenleg nem támogatottak a modellstruktúra eltérései miatt. A nem támogatott SSML-címkékkel kapcsolatos részletes információkért tekintse meg az alábbi táblázatot.
1. szint | 2. szint | Alértékek | Támogatás beágyazott NTTS-ben |
---|---|---|---|
hanganyag | src | Nem | |
bookmark | Igen | ||
törik | erő | Igen | |
time | Igen | ||
csend | típus | Vezető, Farok, Pontos vessző stb. | Nem |
Érték | Nem | ||
hangsúly | szint | Nem | |
Lang | Nem | ||
lexikon | Uri | Igen | |
matek | Nem | ||
msttsaudioduration | Érték | Nem | |
msttsbackgroundaudio | src | Nem | |
kötet | Nem | ||
fadein | Nem | ||
fakulás | Nem | ||
msttsexpress-as | style | Igen1 | |
styledegree | Nem | ||
szerepkör | Nem | ||
msttssilence | Nem | ||
msttsviseme | típus | redlips_front, FacialExpression | Nem |
p | Igen | ||
fonéma | ábécé | ipa, sapi, ups stb. | Igen |
pH | Igen | ||
verstan | kontúr | Mondatszintű támogatás, csak szószintű en-US és zh-CN | Igen |
hangmagasság | Igen | ||
tartomány | Igen | ||
arány | Igen | ||
kötet | Igen | ||
s | Igen | ||
say-as | interpret-as | karakterek, helyesírás, number_digit, dátum stb. | Igen |
format | Igen | ||
részlet | Igen | ||
al | alias | Igen | |
beszél | Igen | ||
voice | Nem |
1 A msttsexpress-as
stílus csak a en-US-JennyNeural
hang esetében támogatott.