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:

  1. Menginstal Apache Maven.
  2. Buka perintah tempat Anda menginginkan proyek baru berada dan buat file pom.xml baru.
  3. 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.37.0</version>
            </dependency>
        </dependencies>
    </project>
    
  4. 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 sumber daya Ucapan. Untuk ucapan yang disematkan, Anda tidak menggunakan sumber daya 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("MODEL_KEY"));

// For text to speech
embeddedSpeechConfig.SetSpeechSynthesisVoice(
    "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
    Environment.GetEnvironmentVariable("VOICE_KEY"));
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("MODEL_KEY"));

// For text to speech
embeddedSpeechConfig->SetSpeechSynthesisVoice(
    "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
    GetEnvironmentVariable("VOICE_KEY"));
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("MODEL_KEY"));

// For text to speech
embeddedSpeechConfig.setSpeechSynthesisVoice(
    "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
    System.getenv("VOICE_KEY"));
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 SpeechConfigditunjukkan 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 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 No
waktu No
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 No
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
Pitch 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

Langkah berikutnya