Ekli konuşma nedir?
Embedded Speech, bulut bağlantısının aralıklı olduğu veya kullanılamadığı cihaz içi konuşmayı metne dönüştürme ve metin okuma senaryoları için tasarlanmıştır. Örneğin, katıştırılmış konuşmayı endüstriyel ekipmanlarda, ses özellikli bir klima ünitesinde veya aralık dışında seyahat eden bir arabada kullanabilirsiniz. Karma bulut ve çevrimdışı çözümler de geliştirebilirsiniz. Cihazlarınızın banka veya kamu kuruluşu gibi güvenli bir ortamda olması gereken senaryolar için önce bağlantısı kesilmiş kapsayıcıları göz önünde bulundurmanız gerekir.
Önemli
Microsoft, katıştırılmış konuşma erişimini sınırlar. Erişim için Azure AI Konuşma eklenmiş konuşma sınırlı erişim gözden geçirmesi aracılığıyla başvurabilirsiniz. Daha fazla bilgi için bkz . Ekli konuşma için sınırlı erişim.
Platform gereksinimleri
Katıştırılmış konuşma C#, C++ ve Java için Konuşma SDK'sı (sürüm 1.24.1 ve üzeri) ile birlikte sunulur. Programlama dili ve hedef platforma özgü ayrıntılar için genel Konuşma SDK'sı yükleme gereksinimlerine bakın.
Hedef ortamınızı seçin
Arm64 () veya Arm32 () donanımlarında Android 7.0 (arm64-v8a
API düzeyi 24armeabi-v7a
) veya üzerini gerektirir.
Sinir seslerine sahip gömülü TTS yalnızca Arm64'te desteklenir.
Sınırlamalar
Katıştırılmış konuşma yalnızca C#, C++ ve Java SDK'larıyla kullanılabilir. Diğer Konuşma SDK'ları, Konuşma CLI'sı ve REST API'leri ekli konuşmayı desteklemez.
Katıştırılmış konuşma tanıma yalnızca mono 16 bit, 8 kHz veya 16 kHz PCM kodlu WAV ses biçimlerini destekler.
Katıştırılmış sinir sesleri 100 MB RAM gereksinimiyle 24 kHz RIFF/RAW desteği sağlar.
Ekli konuşma SDK'sı paketleri
C# eklenmiş uygulamaları için aşağıdaki C# paketleri için Konuşma SDK'sını yükleyin:
Paket | Açıklama |
---|---|
Microsoft.CognitiveServices.Speech | Konuşma SDK'sını kullanmak için gereklidir |
Microsoft.CognitiveServices.Speech.Extension.Embedded.SR | Ekli konuşma tanıma için gereklidir |
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS | Ekli konuşma sentezi için gereklidir |
Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime | Ekli konuşma tanıma ve sentez için gereklidir |
Microsoft.CognitiveServices.Speech.Extension.Telemetry | Ekli konuşma tanıma ve sentez için gereklidir |
C++ ekli uygulamaları için C++ paketleri için aşağıdaki Konuşma SDK'sını yükleyin:
Paket | Açıklama |
---|---|
Microsoft.CognitiveServices.Speech | Konuşma SDK'sını kullanmak için gereklidir |
Microsoft.CognitiveServices.Speech.Extension.Embedded.SR | Ekli konuşma tanıma için gereklidir |
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS | Ekli konuşma sentezi için gereklidir |
Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime | Ekli konuşma tanıma ve sentez için gereklidir |
Microsoft.CognitiveServices.Speech.Extension.Telemetry | Ekli konuşma tanıma ve sentez için gereklidir |
Hedef ortamınızı seçin
Java eklenmiş uygulamalar için, bağımlılık olarak client-sdk-embedded (.jar
) ekleyin. Bu paket bulut, tümleşik ve karma konuşmayı destekler.
Önemli
Yalnızca bulut konuşma hizmetlerini desteklediğinden istemci sdk'sını aynı projeye eklemeyin.
Apache Maven kullanarak Java için Konuşma SDK'sını yüklemek için şu adımları izleyin:
- Apache Maven'ı yükleyin.
- Yeni projeyi istediğiniz yerde bir komut istemi açın ve yeni
pom.xml
bir dosya oluşturun. - Aşağıdaki XML içeriğini içine
pom.xml
kopyalayın:<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>
- Konuşma SDK'sını ve bağımlılıkları yüklemek için aşağıdaki Maven komutunu çalıştırın.
mvn clean dependency:copy-dependencies
Modeller ve sesler
Ekli konuşma için, konuşmayı metne dönüştürmeye yönelik konuşma tanıma modellerini ve metinden konuşmaya yönelik sesleri indirmeniz gerekir. Sınırlı erişim gözden geçirme işlemi başarıyla tamamlandıktan sonra yönergeler sağlanır.
Metin modelleri için şu konuşma kullanılabilir: 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 ve zh-TW.
Buradaki tüm metin okuma yerel ayarları (fa-IR, Farsça (İran) hariç) 1 seçili kadın ve/veya 1 seçili erkek sesiyle kutudan çıkarılır. Daha fazla dil ve ses talebini ölçmemize yardımcı olmak için görüşlerinizi bekliyoruz.
Ekli konuşma yapılandırması
Çoğu Konuşma SDK'sı örneğinde gösterildiği gibi buluta bağlı uygulamalar için nesnesini bir API anahtarı ve bölgesi ile kullanırsınız SpeechConfig
. Ekli konuşmada Konuşma için yapay zeka hizmetleri kaynağı kullanmazsınız. Bulut kaynağı yerine, yerel cihazınıza indirdiğiniz modelleri ve sesleri kullanırsınız.
Modellerin EmbeddedSpeechConfig
veya seslerin konumunu ayarlamak için nesnesini kullanın. Uygulamanız hem konuşmayı metne hem de metin okuma için kullanılıyorsa, modellerin ve seslerin konumunu ayarlamak için aynı EmbeddedSpeechConfig
nesneyi kullanabilirsiniz.
// 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);
İpucu
İşlev, GetEnvironmentVariable
konuşmayı metne dönüştürme hızlı başlangıcında ve metin okuma hızlı başlangıcında tanımlanır.
// 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);
Eklenmiş konuşma kodu örnekleri
GitHub'da kullanıma hazır konuşma örnekleri bulabilirsiniz. Sıfırdan projelerle ilgili açıklamalar için örneklere özgü belgelere bakın:
GitHub'da kullanıma hazır konuşma örnekleri bulabilirsiniz. Sıfırdan projelerle ilgili açıklamalar için örneklere özgü belgelere bakın:
GitHub'da kullanıma hazır konuşma örnekleri bulabilirsiniz. Sıfırdan projelerle ilgili açıklamalar için örneklere özgü belgelere bakın:
Karma konuşma
Nesnesiyle karma konuşma, bulut bağlantısının HybridSpeechConfig
sınırlı veya yavaş olması durumunda varsayılan olarak bulut konuşma hizmetini ve geri dönüş olarak ekli konuşmayı kullanır.
Konuşmayı metne dönüştürme (tanıma modelleri) için karma konuşma yapılandırmasıyla, yinelenen denemelerden sonra bulut hizmetine bağlantı başarısız olduğunda tümleşik konuşma kullanılır. Bağlantı daha sonra sürdürülürse, tanıma bulut hizmetini yeniden kullanmaya devam edebilir.
Metin okuma (sesler) için karma konuşma yapılandırmasıyla, katıştırılmış ve bulut sentezi paralel olarak çalıştırılır ve yanıt hızına göre nihai sonuç seçilir. En iyi sonuç her yeni sentez isteğinde yeniden değerlendirilir.
Bulut konuşma
Bulut konuşmasında, konuşmayı metne SpeechConfig
dönüştürme hızlı başlangıcında ve metin okuma hızlı başlangıcında gösterildiği gibi nesnesini kullanırsınız. Ekli konuşma hızlı başlangıçlarını çalıştırmak için veya ile EmbeddedSpeechConfig
HybridSpeechConfig
değiştirebilirsinizSpeechConfig
. Bulut, katıştırılmış veya karma yapılandırma kullanılsın, diğer konuşma tanıma ve sentez kodlarının çoğu aynıdır.
Katıştırılmış ses özellikleri
Katıştırılmış sesler için, model yapısındaki farklılıklar nedeniyle belirli Konuşma sentezi işaretleme dili (SSML) etiketlerinin şu anda desteklenmeyebileceğini unutmayın. Desteklenmeyen SSML etiketleriyle ilgili ayrıntılı bilgi için aşağıdaki tabloya bakın.
Düzey 1 | Düzey 2 | Alt değerler | Katıştırılmış NTTS desteği |
---|---|---|---|
ses | src | Hayır | |
bookmark | Yes | ||
break | mukavemet | Yes | |
time | Yes | ||
sessizlik | Tür | Baştaki, Kuyruklama, Tam Virgül, vb. | Hayır |
değer | Hayır | ||
kuvvet | düzey | Hayır | |
Lang | Hayır | ||
sözlük | uri | Yes | |
Matematik | Hayır | ||
msttsaudioduration | değer | Hayır | |
msttsbackgroundaudio | src | Hayır | |
hacim | Hayır | ||
fadein | Hayır | ||
belirme | Hayır | ||
msttsexpress-as | stili | Evet1 | |
styledegree | Hayır | ||
rol | Hayır | ||
msttssilence | Hayır | ||
msttsviseme | Tür | redlips_front, FacialExpression | Hayır |
ös | Yes | ||
fonem | alfabe | ipa, sapi, ups vb. | Yes |
Ph | Yes | ||
vezin | Kontur | Cümle düzeyi desteği, yalnızca sözcük düzeyi en-US ve zh-CN | Yes |
perde | Yes | ||
aralık | Yes | ||
oran | Yes | ||
hacim | Yes | ||
s | Yes | ||
farklı söyle | farklı yorumla | karakterler, yazım denetimi, number_digit, tarih vb. | Yes |
format | Yes | ||
ayrıntı | Yes | ||
alt | diğer ad | Yes | |
konuşmak | Yes | ||
voice | Hayır |
1 Stil msttsexpress-as
yalnızca ses için en-US-JennyNeural
desteklenir.