Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Osadzona mowa jest przeznaczona do zamiany mowy na urządzenie na tekst i tekst na mowę , w których łączność w chmurze jest sporadycznie lub niedostępna. Można na przykład użyć mowy osadzonej w sprzęcie przemysłowym, jednostce klimatyzacji z włączoną obsługą głosu lub samochodzie, który może podróżować poza zasięgiem. Możesz również opracowywać rozwiązania chmury hybrydowej i offline. W przypadku scenariuszy, w których urządzenia muszą znajdować się w bezpiecznym środowisku, na przykład banku lub jednostki rządowej, należy najpierw rozważyć odłączenie kontenerów.
Ważne
Firma Microsoft ogranicza dostęp do osadzonej mowy. Możesz ubiegać się o dostęp poprzez przegląd o ograniczonym dostępie do osadzonej mowy w usłudze Azure AI. Aby uzyskać więcej informacji, zobacz Ograniczony dostęp do osadzonej mowy.
Wymagania dotyczące platformy
Osadzona mowa jest dołączona do zestawu Speech SDK (wersja 1.24.1 i nowsza) dla języków C#, C++i Java. Zapoznaj się z ogólnymi wymaganiami dotyczącymi instalacji zestawu SPEECH SDK, aby uzyskać szczegółowe informacje dotyczące języka programowania i platformy docelowej.
Wybieranie środowiska docelowego
Wymaga systemu Android 8.0 (poziom 26 interfejsu API) lub nowszego na sprzęcie Arm64 (arm64-v8a
) lub Arm32 (armeabi-v7a
).
Ograniczenia
Osadzona mowa jest dostępna tylko w przypadku zestawów SDK języka C#, C++i Java. Inne zestawy SDK rozpoznawania mowy, interfejs wiersza polecenia usługi Mowa i interfejsy API REST nie obsługują osadzonej mowy.
Osadzone rozpoznawanie mowy obsługuje tylko formaty audio WAV zakodowane w formacie PCM, mono, 16-bit, 8-kHz lub 16-kHz.
Osadzone neuronowe głosy obsługują 24 kHz RIFF/RAW z wymaganiem pamięci RAM wynoszącym 100 MB.
Pakiety osadzonego zestawu SPEECH SDK
W przypadku aplikacji osadzonych w języku C# zainstaluj następujący zestaw Speech SDK dla pakietów języka C#:
Pakiet | opis |
---|---|
Microsoft.CognitiveServices.Speech | Wymagane do korzystania z zestawu SPEECH SDK |
Microsoft.CognitiveServices.Speech.Extension.Embedded.SR | Wymagane do rozpoznawania mowy osadzonej |
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS | Wymagane do osadzonej syntezy mowy |
Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime | Wymagane do rozpoznawania i syntezy mowy osadzonej |
Microsoft.CognitiveServices.Speech.Extension.Telemetry | Wymagane do rozpoznawania i syntezy mowy osadzonej |
W przypadku aplikacji osadzonych języka C++ zainstaluj następujący zestaw Speech SDK dla pakietów języka C++:
Pakiet | opis |
---|---|
Microsoft.CognitiveServices.Speech | Wymagane do korzystania z zestawu SPEECH SDK |
Microsoft.CognitiveServices.Speech.Extension.Embedded.SR | Wymagane do rozpoznawania mowy osadzonej |
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS | Wymagane do osadzonej syntezy mowy |
Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime | Wymagane do rozpoznawania i syntezy mowy osadzonej |
Microsoft.CognitiveServices.Speech.Extension.Telemetry | Wymagane do rozpoznawania i syntezy mowy osadzonej |
Wybieranie środowiska docelowego
W przypadku aplikacji osadzonych w języku Java dodaj element client-sdk-embedded (.jar
) jako zależność. Ten pakiet obsługuje mowę w chmurze, osadzoną i hybrydową.
Ważne
Nie dodawaj zestawu client-sdk w tym samym projekcie, ponieważ obsługuje tylko usługi mowy w chmurze.
Wykonaj następujące kroki, aby zainstalować zestaw SPEECH SDK dla języka Java przy użyciu narzędzia Apache Maven:
- Zainstaluj narzędzie Apache Maven.
- Otwórz wiersz polecenia, w którym chcesz utworzyć nowy projekt, i utwórz nowy
pom.xml
plik. - Skopiuj następującą zawartość XML do
pom.xml
pliku :<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.43.0</version> </dependency> </dependencies> </project>
- Uruchom następujące polecenie narzędzia Maven, aby zainstalować zestaw SPEECH SDK i zależności.
mvn clean dependency:copy-dependencies
Modele i głosy
W przypadku osadzonej mowy należy pobrać modele rozpoznawania mowy do zamiany mowy na tekst i głosy do zamiany tekstu na mowę. Instrukcje są udostępniane po pomyślnym zakończeniu procesu przeglądu ograniczonego dostępu.
Dostępne są następujące modele mowy do tekstu : 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 i zh-TW.
Wszystkie ustawienia regionalne zamiany tekstu na mowę tutaj (z wyjątkiem fa-IR, Perski (Iran)) są dostępne poza pudełkiem z 1 wybranymi kobietami i/lub 1 wybranymi męskimi głosami. Z zadowoleniem przyjmujemy twoje sugestie, aby pomóc nam ocenić zapotrzebowanie na więcej języków i głosów.
Konfiguracja osadzonej mowy
W przypadku aplikacji połączonych z chmurą, jak pokazano w większości przykładów zestawu SPEECH SDK, należy użyć SpeechConfig
obiektu z kluczem interfejsu API i punktem końcowym. W przypadku osadzonej mowy nie używasz zasobu AI Foundry do rozpoznawania mowy. Zamiast zasobu w chmurze używasz modeli i głosów pobieranych na urządzenie lokalne.
Użyj obiektu , EmbeddedSpeechConfig
aby ustawić lokalizację modeli lub głosów. Jeśli aplikacja jest używana zarówno do zamiany mowy na tekst, jak i do zamiany tekstu na mowę, możesz użyć tego samego EmbeddedSpeechConfig
obiektu, aby ustawić lokalizację modeli i głosów.
// 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);
Napiwek
Funkcja GetEnvironmentVariable
jest zdefiniowana w szybkim rozpoczęciu zamiany mowy na tekst i szybkim rozpoczęciu zamiany tekstu na mowę.
// 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);
Przykłady osadzonych próbek kodu mowy
Możesz znaleźć gotowe do użycia osadzone próbki mowy w usłudze GitHub. Aby uzyskać uwagi dotyczące projektów od podstaw, zobacz dokumentację specyficzną dla przykładów:
Możesz znaleźć gotowe do użycia osadzone próbki mowy w usłudze GitHub. Aby uzyskać uwagi dotyczące projektów od podstaw, zobacz dokumentację specyficzną dla przykładów:
Możesz znaleźć gotowe do użycia osadzone próbki mowy w usłudze GitHub. Aby uzyskać uwagi dotyczące projektów od podstaw, zobacz dokumentację specyficzną dla przykładów:
Mowa hybrydowa
Hybrydowa mowa z obiektem HybridSpeechConfig
domyślnie używa usługi mowy w chmurze, a mowy wbudowanej jako rozwiązania rezerwowego w przypadku, gdy łączność z chmurą jest ograniczona lub powolna.
W przypadku hybrydowej konfiguracji mowy dla zamiany mowy na tekst (modele rozpoznawania) osadzona mowa jest używana, gdy połączenie z usługą w chmurze kończy się niepowodzeniem po wielokrotnych próbach. Rozpoznawanie może nadal korzystać z usługi w chmurze ponownie, jeśli połączenie zostanie wznowione później.
W przypadku hybrydowej konfiguracji mowy dla zamiany tekstu na mowę (głosy), synteza wbudowana i chmurowa działają równolegle, a końcowy wynik jest wybierany na podstawie szybkości odpowiedzi. Najlepszy wynik zostanie ponownie oceniony na każde nowe żądanie syntezy.
Mowa w chmurze
W przypadku mowy w chmurze używasz obiektu SpeechConfig
, jak pokazano w przewodniku Szybki start zamiany mowy na tekst i Szybki start zamiany tekstu na mowę. Aby uruchomić przewodniki szybkiego startu dotyczące osadzonej mowy, możesz zastąpić SpeechConfig
ciągiem EmbeddedSpeechConfig
lub HybridSpeechConfig
. Większość innego rozpoznawania i syntezy kodu mowy jest taka sama, niezależnie od tego, czy jest używana konfiguracja chmurowa, osadzona, czy hybrydowa.
Funkcje osadzonych głosów
W przypadku osadzonych głosów należy pamiętać, że niektóre tagi języka znaczników syntezy mowy (SSML) mogą nie być obecnie obsługiwane z powodu różnic w strukturze modelu. Aby uzyskać szczegółowe informacje dotyczące nieobsługiwanych tagów SSML, zapoznaj się z poniższą tabelą.
Poziom 1 | Poziom 2 | Wartości podrzędne | Wsparcie wbudowanej usługi NTTS |
---|---|---|---|
dźwięk | Src | Nie. | |
zakładka | Tak | ||
przerwać | siła | Tak | |
czas | Tak | ||
cisza | typ | Wiodące, końcowe, dokładne dopasowanie z przecinkiem, itp. | Nie. |
wartość | Nie. | ||
nacisk | poziom | Nie. | |
język | Nie. | ||
leksykon | URI | Tak | |
matematyka | Nie. | ||
msttsaudioduration | wartość | Nie. | |
msttsbackgroundaudio | Src | Nie. | |
wolumin | Nie. | ||
zanikanie | Nie. | ||
Zanikanie | Nie. | ||
msttsexpress-as | styl | Tak1 | |
styledegree | Nie. | ||
rola | Nie. | ||
msttssilence | Nie. | ||
msttsviseme | typ | redlips_front, WyrazTwarzy | Nie. |
p | Tak | ||
fonem | alfabet | ipa, sapi, ups itp. | Tak |
ph | Tak | ||
prozodia | kontur | Obsługa na poziomie zdań, a na poziomie wyrazów dostępna tylko dla języków en-US i zh-CN | Tak |
rzucać | Tak | ||
zakres | Tak | ||
wskaźnik | Tak | ||
wolumin | Tak | ||
s | Tak | ||
określenie formatu wypowiedzi | interpretować jako | znaki, przeliterowanie, cyfra, data itp. | Tak |
formatowanie | Tak | ||
szczegóły | Tak | ||
Subskrypcja | alias | Tak | |
mówić | Tak | ||
głos | Nie. |
1 Styl msttsexpress-as
jest obsługiwany tylko dla en-US-JennyNeural
głosu.