Apa itu ucapan yang disematkan?
Ucapan tersemat dirancang untuk ucapan ke teks dan teks ke skenario ucapan di perangkat di mana konektivitas cloud terputus-putus atau tidak tersedia. Misalnya, Anda dapat menggunakan ucapan yang disematkan dalam peralatan industri, unit AC dengan dukungan suara, atau mobil yang mungkin bepergian di luar jangkauan. Anda juga dapat mengembangkan solusi cloud dan offline hibrid. Untuk skenario di mana perangkat Anda harus berada di lingkungan yang aman seperti bank atau entitas pemerintah, Anda harus terlebih dahulu mempertimbangkan kontainer yang terputus.
Penting
Microsoft membatasi akses ke ucapan yang disematkan. Anda dapat mengajukan permohonan akses melalui tinjauan akses terbatas ucapan yang disematkan Azure AI Speech. Untuk informasi selengkapnya, lihat Akses terbatas untuk ucapan yang disematkan.
Persyaratan platform
Ucapan yang disematkan disertakan dengan Speech SDK (versi 1.24.1 dan yang lebih tinggi) untuk C#, C++, dan Java. Lihat persyaratan penginstalan Speech SDK umum untuk bahasa pemrograman dan detail spesifik platform target.
Memilih target lingkungan Anda
Memerlukan Android 7.0 (API level 24) atau yang lebih tinggi pada perangkat keras Arm64 (arm64-v8a
) atau Arm32 (armeabi-v7a
).
TTS yang disematkan dengan suara saraf hanya didukung di Arm64.
Batasan
Ucapan yang disematkan hanya tersedia dengan C#, C++, dan Java SDK. Speech SDK, Speech CLI, dan REST API lainnya tidak mendukung ucapan yang disematkan.
Pengenalan ucapan yang disematkan hanya mendukung format audio WAV yang dikodekan mono 16 bit, 8 kHz, atau 16 kHz PCM.
Suara saraf tersemat mendukung 24 kHz RIFF/RAW, dengan persyaratan RAM 100 MB.
Paket SDK ucapan yang disematkan
Untuk aplikasi C# yang disematkan, instal Speech SDK berikut untuk paket C#:
Paket | Deskripsi |
---|---|
Microsoft.CognitiveServices.Speech | Diperlukan untuk menggunakan Speech SDK |
Microsoft.CognitiveServices.Speech.Extension.Embedded.SR | Diperlukan untuk pengenalan ucapan yang disematkan |
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS | Diperlukan untuk sintesis ucapan yang disematkan |
Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime | Diperlukan untuk pengenalan dan sintesis ucapan yang disematkan |
Microsoft.CognitiveServices.Speech.Extension.Telemetry | Diperlukan untuk pengenalan dan sintesis ucapan yang disematkan |
Untuk aplikasi C++ yang disematkan, instal Speech SDK berikut untuk paket C++:
Paket | Deskripsi |
---|---|
Microsoft.CognitiveServices.Speech | Diperlukan untuk menggunakan Speech SDK |
Microsoft.CognitiveServices.Speech.Extension.Embedded.SR | Diperlukan untuk pengenalan ucapan yang disematkan |
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS | Diperlukan untuk sintesis ucapan yang disematkan |
Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime | Diperlukan untuk pengenalan dan sintesis ucapan yang disematkan |
Microsoft.CognitiveServices.Speech.Extension.Telemetry | Diperlukan untuk pengenalan dan sintesis ucapan yang disematkan |
Memilih target lingkungan Anda
Untuk aplikasi yang disematkan Java, tambahkan client-sdk-embedded (.jar
) sebagai dependensi. Paket ini mendukung ucapan cloud, tersemat, dan hibrid.
Penting
Jangan tambahkan client-sdk dalam proyek yang sama, karena hanya mendukung layanan ucapan cloud.
Ikuti langkah-langkah berikut untuk menginstal Speech SDK untuk Java menggunakan Apache Maven:
- Menginstal Apache Maven.
- Buka perintah tempat Anda menginginkan proyek baru berada dan buat file
pom.xml
baru. - Salin konten XML berikut ke dalam
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>
- Jalankan perintah Maven berikut untuk menginstal SDK Azure Cognitive Service untuk Ucapan dan dependensi.
mvn clean dependency:copy-dependencies
Model dan suara
Untuk ucapan yang disematkan, Anda perlu mengunduh model pengenalan ucapan untuk ucapan ke teks dan suara untuk teks ke ucapan. Instruksi diberikan setelah berhasil menyelesaikan proses tinjauan akses terbatas.
Model ucapan ke teks berikut tersedia: 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, dan zh-TW.
Semua lokal teks ke ucapan di sini (kecuali fa-IR, Persia (Iran)) tersedia di luar kotak dengan 1 suara perempuan dan/atau 1 laki-laki yang dipilih. Kami menyambut masukan Anda untuk membantu kami mengukur permintaan untuk lebih banyak bahasa dan suara.
Konfigurasi ucapan yang disematkan
Untuk aplikasi yang terhubung ke cloud, seperti yang ditunjukkan di sebagian besar sampel Speech SDK, Anda menggunakan SpeechConfig
objek dengan kunci dan wilayah API. Untuk ucapan yang disematkan, Anda tidak menggunakan sumber daya Layanan AI untuk Ucapan. Alih-alih sumber daya cloud, Anda menggunakan model dan suara yang Anda unduh ke perangkat lokal Anda.
EmbeddedSpeechConfig
Gunakan objek untuk mengatur lokasi model atau suara. Jika aplikasi Anda digunakan untuk ucapan ke teks dan teks ke ucapan, Anda dapat menggunakan objek yang sama EmbeddedSpeechConfig
untuk mengatur lokasi model dan suara.
// 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
Fungsi GetEnvironmentVariable
ini didefinisikan dalam mulai cepat ucapan ke teks dan mulai cepat teks ke ucapan.
// 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);
Sampel kode ucapan yang disematkan
Anda dapat menemukan siap untuk menggunakan sampel ucapan yang disematkan di GitHub. Untuk keterangan tentang proyek dari awal, lihat contoh dokumentasi tertentu:
Anda dapat menemukan siap untuk menggunakan sampel ucapan yang disematkan di GitHub. Untuk keterangan tentang proyek dari awal, lihat contoh dokumentasi tertentu:
Anda dapat menemukan siap untuk menggunakan sampel ucapan yang disematkan di GitHub. Untuk keterangan tentang proyek dari awal, lihat contoh dokumentasi tertentu:
Ucapan hibrid
Ucapan hibrid dengan HybridSpeechConfig
objek menggunakan layanan ucapan cloud secara default dan ucapan yang disematkan sebagai fallback jika konektivitas cloud terbatas atau lambat.
Dengan konfigurasi ucapan hibrid untuk ucapan ke teks (model pengenalan), ucapan yang disematkan digunakan saat koneksi ke layanan cloud gagal setelah upaya berulang. Pengenalan mungkin terus menggunakan layanan awan lagi jika koneksi kemudian dilanjutkan.
Dengan konfigurasi ucapan hibrid untuk teks ke ucapan (suara), sintesis tersemat dan cloud dijalankan secara paralel dan hasil akhir dipilih berdasarkan kecepatan respons. Hasil terbaik dievaluasi lagi pada setiap permintaan sintesis baru.
Ucapan cloud
Untuk ucapan cloud, Anda menggunakan objek , seperti yang SpeechConfig
ditunjukkan dalam mulai cepat ucapan ke teks dan mulai cepat teks ke ucapan. Untuk menjalankan mulai cepat untuk ucapan yang disematkan, Anda dapat mengganti SpeechConfig
dengan EmbeddedSpeechConfig
atau HybridSpeechConfig
. Sebagian besar pengenalan ucapan dan kode sintesis lainnya sama, baik menggunakan konfigurasi cloud, tersemat, atau hibrid.
Kemampuan suara yang disematkan
Untuk suara yang disematkan, penting untuk dicatat bahwa tag bahasa markup sintesis Ucapan (SSML) tertentu mungkin saat ini tidak didukung karena perbedaan dalam struktur model. Untuk informasi terperinci mengenai tag SSML yang tidak didukung, lihat tabel berikut.
Level 1 | Level 2 | Sub nilai | Dukungan dalam NTTS yang disematkan |
---|---|---|---|
audio | src | No | |
bookmark | Ya | ||
break | kekuatan | Ya | |
waktu | Ya | ||
Keheningan | jenis | Leading, Tailing, Comma-exact, dll. | No |
value | No | ||
Penekanan | tingkat | No | |
lang | No | ||
lexicon | uri | Ya | |
Matematika | No | ||
msttsaudioduration | value | No | |
msttsbackgroundaudio | src | No | |
volume | No | ||
pudarkan | No | ||
pudar | No | ||
msttsexpress-as | gaya | Ya1 | |
styledegree | No | ||
role | No | ||
msttssilence | No | ||
msttsviseme | jenis | redlips_front, FacialExpression | No |
p | Ya | ||
fonem | abjad | ipa, sapi, ups, dll. | Ya |
Ph | Ya | ||
prosody | Kontur | Dukungan tingkat kalimat, tingkat kata hanya en-US dan zh-CN | Ya |
lempar | Ya | ||
rentang | Ya | ||
rate | Ya | ||
volume | Ya | ||
s | Ya | ||
say-as | interpret-as | karakter, ejaan, number_digit, tanggal, dll. | Ya |
format | Ya | ||
detail | Ya | ||
sub | alias | Ya | |
berbicara | Ya | ||
Suara | No |
1 Gaya msttsexpress-as
hanya didukung untuk en-US-JennyNeural
suara.