Bagikan melalui


Apa itu suara tersemat?

Ucapan Tersemat dirancang untuk skenario pada perangkat di mana konversi ucapan ke teks dan teks ke ucapan dilakukan, ketika 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 pengenalan suara tersemat. Anda dapat mengajukan permohonan akses melalui tinjauan akses terbatas ucapan yang disematkan Azure AI Speech. Untuk informasi selengkapnya, lihat Akses terbatas untuk ucapan yang tertanam.

Persyaratan platform

Fitur pengenalan suara tertanam disertakan dengan Speech SDK (versi 1.24.1 ke atas) untuk C#, C++, dan Java. Lihat persyaratan penginstalan Speech SDK umum untuk bahasa pemrograman dan detail spesifik platform target.

Pilih lingkungan target Anda

Memerlukan perangkat keras Android 8.0 (API level 26) atau yang lebih tinggi di Arm64 (arm64-v8a) atau Arm32 (armeabi-v7a).

Batasan

Fitur ucapan tersemat 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 Pengenalan Suara Tertanam

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 suara tertanam
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS Diperlukan untuk sintesis ucapan tertanam
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 suara tertanam
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS Diperlukan untuk sintesis ucapan tertanam
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

Pilih lingkungan target Anda

Untuk aplikasi yang disematkan Java, tambahkan client-sdk-embedded (.jar) sebagai dependensi. Paket ini mendukung suara 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 jendela perintah di lokasi di mana Anda menginginkan proyek baru, 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.43.0</version>
            </dependency>
        </dependencies>
    </project>
    
  4. Jalankan perintah Maven berikut untuk menginstal Speech SDK 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 tersisip

Untuk aplikasi yang terhubung ke cloud, seperti yang ditunjukkan di sebagian besar sampel Speech SDK, Anda menggunakan SpeechConfig objek dengan kunci API dan titik akhir. Untuk ucapan yang tertanam, Anda tidak menggunakan sumber daya AI Foundry untuk pemrosesan suara. 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);

Petunjuk / Saran

Fungsi GetEnvironmentVariable ini didefinisikan dalam panduan awal ucapan ke teks dan panduan awal 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 sampel ucapan yang siap digunakan dan disematkan di GitHub. Untuk keterangan tentang proyek dari awal, lihat contoh dokumentasi tertentu:

Anda dapat menemukan sampel ucapan yang siap digunakan dan disematkan di GitHub. Untuk keterangan tentang proyek dari awal, lihat contoh dokumentasi tertentu:

Anda dapat menemukan sampel ucapan yang siap digunakan dan disematkan di GitHub. Untuk keterangan tentang proyek dari awal, lihat contoh dokumentasi tertentu:

Pembicaraan hibrida

Ucapan hibrida dengan objek HybridSpeechConfig menggunakan layanan ucapan cloud secara default dan ucapan tersemat sebagai cadangan jika koneksi 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 berbasis cloud

Untuk ucapan cloud, Anda menggunakan objek SpeechConfig, seperti yang 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.

Tingkat 1 Tingkat 2 Sub-nilai Dukungan pada NTTS yang disematkan
Suara Src Tidak
marka buku Ya
istirahat kekuatan Ya
waktu Ya
Keheningan jenis Leading, Tailing, Comma-exact, dll. Tidak
nilai Tidak
Penekanan level Tidak
Lang Tidak
leksikon URI Ya
Matematika Tidak
msttsaudioduration nilai Tidak
Audio Latar Belakang MSTTS Src Tidak
volume suara Tidak
muncul perlahan Tidak
pudar Tidak
msttsexpress-as gaya Ya1
styledegree Tidak
peran Tidak
msttssilence Tidak
msttsviseme jenis redlips_front, EkspresiWajah Tidak
p Ya
fonem abjad ipa, sapi, ups, dll. Ya
pH Ya
prosodis Kontur Dukungan tingkat kalimat, tingkat kata hanya en-US dan zh-CN Ya
lemparan Ya
rentang Ya
tarif Ya
volume suara Ya
s Ya
katakan-sebagai diterjemahkan sebagai karakter, ejaan, angka, tanggal, dan lain-lain. Ya
bentuk Ya
perincian Ya
Subkategori alias Ya
berbicara Ya
Suara Tidak

1 Gaya msttsexpress-as hanya didukung untuk en-US-JennyNeural suara.