Mulai Cepat: Mengenali niat dengan Pemahaman Bahasa Percakapan
Dokumentasi referensi | Paket (NuGet) | Sampel Tambahan pada GitHub
Dalam mulai cepat ini, Anda akan menggunakan layanan Ucapan dan Bahasa untuk mengenali niat dari data audio yang diambil dari mikrofon. Secara khusus, Anda akan menggunakan layanan Ucapan untuk mengenali ucapan, dan model Pemahaman Bahasa Percakapan (CLU) untuk mengidentifikasi niat.
Penting
Pemahaman Bahasa Percakapan (CLU) tersedia untuk C# dan C++ dengan Speech SDK versi 1.25 atau yang lebih baru.
Prasyarat
- Langganan Azure - Membuat langganan gratis
- Buat Sumber daya Bahasa di portal Azure.
- Dapatkan kunci dan titik akhir sumber daya Bahasa. Setelah sumber daya Bahasa Anda disebarkan, pilih Buka sumber daya untuk melihat dan mengelola kunci. Untuk informasi selengkapnya tentang sumber daya layanan Azure AI, lihat Mendapatkan kunci untuk sumber daya Anda.
- Buat sumber daya Azure di portal Azure.
- Dapatkan kunci dan wilayah sumber daya Ucapan. Setelah sumber daya Azure Cognitive Service untuk Ucapan Anda disebarkan, pilih Buka sumber daya untuk melihat dan mengelola kunci. Untuk informasi selengkapnya tentang sumber daya layanan Azure AI, lihat Mendapatkan kunci untuk sumber daya Anda.
Menyiapkan lingkungan
Speech SDK tersedia sebagai paket NuGet dan menerapkan .NET Standar 2.0. Anda menginstal Speech SDK nanti dalam panduan ini, tetapi pertama-tama periksa panduan penginstalan SDK untuk persyaratan lainnya.
Atur variabel lingkungan
Contoh ini memerlukan variabel lingkungan bernama LANGUAGE_KEY
, , LANGUAGE_ENDPOINT
SPEECH_KEY
, dan SPEECH_REGION
.
Aplikasi Anda harus diautentikasi untuk mengakses sumber daya layanan Azure AI. Untuk produksi, gunakan cara yang aman dalam menyimpan dan mengakses info masuk Anda. Misalnya, setelah Anda mendapatkan kunci untuk sumber , tulis ke variabel lingkungan baru di komputer lokal yang menjalankan aplikasi.
Tip
Jangan sertakan kunci langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik. Lihat artikel keamanan layanan Azure AI untuk opsi autentikasi lainnya seperti Azure Key Vault.
Untuk mengatur variabel lingkungan, buka jendela konsol, dan ikuti instruksi untuk sistem operasi dan lingkungan pengembangan Anda.
- Untuk mengatur
LANGUAGE_KEY
variabel lingkungan, gantiyour-language-key
dengan salah satu kunci untuk sumber daya Anda. - Untuk mengatur
LANGUAGE_ENDPOINT
variabel lingkungan, gantiyour-language-endpoint
dengan salah satu wilayah untuk sumber daya Anda. - Untuk mengatur
SPEECH_KEY
variabel lingkungan, gantiyour-speech-key
dengan salah satu kunci untuk sumber daya Anda. - Untuk mengatur
SPEECH_REGION
variabel lingkungan, gantiyour-speech-region
dengan salah satu wilayah untuk sumber daya Anda.
setx LANGUAGE_KEY your-language-key
setx LANGUAGE_ENDPOINT your-language-endpoint
setx SPEECH_KEY your-speech-key
setx SPEECH_REGION your-speech-region
Catatan
Jika Anda hanya perlu mengakses variabel lingkungan di konsol yang sedang berjalan saat ini, Anda dapat mengatur variabel lingkungan dengan set
alih-alih setx
.
Setelah menambahkan variabel lingkungan, Anda mungkin perlu memulai ulang program yang sedang berjalan yang perlu membaca variabel lingkungan, termasuk jendela konsol. Misalnya, jika Anda menggunakan Visual Studio sebagai editor, hidupkan ulang Visual Studio sebelum menjalankan contoh.
Membuat proyek Luis Percakapan
Setelah Anda membuat sumber daya Bahasa, buat proyek pemahaman bahasa percakapan di Language Studio. Proyek adalah area kerja untuk membuat model ML kustom Anda berdasarkan data Anda. Proyek Anda hanya dapat diakses oleh Anda dan orang lain yang memiliki akses ke sumber daya Bahasa yang digunakan.
Buka Language Studio dan masuk dengan akun Azure Anda.
Membuat proyek pemahaman bahasa percakapan
Untuk mulai cepat ini, Anda dapat mengunduh sampel proyek otomatisasi rumah ini dan mengimpornya. Proyek ini dapat memprediksi perintah yang dimaksudkan dari input pengguna, seperti menyalakan dan mematikan lampu.
Di bawah bagian Pahami pertanyaan dan bahasa percakapan di Language Studio, pilih Pemahaman bahasa percakapan.
Ini akan membawa Anda ke halaman Proyek pemahaman bahasa percakapan. Di samping tombol Buat proyek baru pilih Impor.
Di jendela yang muncul, unggah file JSON yang ingin Anda impor. Pastikan file Anda mengikuti format JSON yang didukung.
Setelah pengunggahan selesai, Anda akan mendarat di halaman definisi Skema . Untuk mulai cepat ini, skema sudah dibuat, dan ucapan sudah diberi label dengan tujuan dan entitas.
Latih model Anda
Biasanya, setelah membuat proyek, Anda harus membangun skema dan memberi label ucapan. Untuk mulai cepat ini, kami sudah mengimpor proyek siap dengan skema bawaan dan ucapan berlabel.
Untuk melatih model, Anda perlu memulai pekerjaan pelatihan. Output dari pekerjaan pelatihan yang sukses adalah model terlatih Anda.
Untuk mulai melatih model Anda dari dalam Language Studio:
Pilih Model kereta api dari menu sebelah kiri.
Pilih Mulai pekerjaan pelatihan dari menu atas.
Pilih Latih model baru dan masukkan nama model baru di kotak teks. Jika tidak, untuk mengganti model yang sudah ada dengan model yang dilatih pada data baru, pilih Timpa model yang sudah ada lalu pilih model yang sudah ada. Menimpa model terlatih tidak dapat diubah, tetapi tidak akan memengaruhi model yang Anda sebarkan hingga Anda menyebarkan model baru.
Pilih mode pelatihan. Anda dapat memilih pelatihan Standar untuk pelatihan yang lebih cepat, tetapi hanya tersedia untuk bahasa Inggris. Atau Anda dapat memilih Pelatihan tingkat lanjut yang didukung untuk bahasa lain dan proyek multibahasa, tetapi melibatkan waktu pelatihan yang lebih lama. Pelajari selengkapnya tentang mode pelatihan.
Pilih metode pemisahan data. Anda dapat memilih Memisahkan set pengujian secara otomatis dari data pelatihan di mana sistem akan membagi ucapan Anda antara set pelatihan dan pengujian, sesuai dengan persentase yang ditentukan. Atau Anda dapat Menggunakan pemisahan manual data pelatihan dan pengujian, opsi ini hanya diaktifkan jika Anda telah menambahkan ucapan ke perangkat pengujian saat memberi label ucapan Anda.
Pilih tombol Latih.
Pilih ID pekerjaan pelatihan dari daftar. Panel akan muncul di mana Anda dapat memeriksa kemajuan pelatihan, status pekerjaan, dan detail lainnya untuk pekerjaan ini.
Catatan
- Hanya pekerjaan pelatihan yang diselesaikan, yang akan menghasilkan model.
- Pelatihan dapat memakan waktu antara beberapa menit dan beberapa jam berdasarkan jumlah ucapan.
- Anda hanya dapat memiliki satu pekerjaan pelatihan yang berjalan pada satu waktu. Anda tidak dapat memulai pekerjaan pelatihan lain dalam proyek yang sama sampai pekerjaan yang sedang berjalan selesai.
- Pembelajaran mesin yang digunakan untuk melatih model diperbarui secara berkala. Untuk melatih versi konfigurasi sebelumnya, pilih Pilih di sini untuk mengubah dari halaman Mulai pekerjaan pelatihan dan pilih versi sebelumnya.
sebarkan model anda
Biasanya setelah melatih model, Anda akan meninjau detail evaluasinya. Dalam mulai cepat ini, Anda akan menyebarkan model dan membuatnya tersedia untuk dicoba di Language Studio, atau Anda dapat memanggil API prediksi.
Untuk menyebarkan model Anda dari dalam Language Studio:
Pilih Menyebarkan model dari menu sebelah kiri.
Pilih Tambahkan penyebaran untuk memulai wizard Tambahkan penyebaran .
Pilih Buat nama penyebaran baru untuk membuat penyebaran baru dan tetapkan model terlatih dari menu dropdown di bawah ini. Anda dapat memilih Timpa nama penyebaran yang ada untuk mengganti model yang digunakan oleh penyebaran yang ada secara efektif.
Catatan
Menimpa penyebaran yang ada tidak memerlukan perubahan pada panggilan API Prediksi Anda tetapi hasil yang Anda dapatkan akan didasarkan pada model yang baru ditetapkan.
Pilih model terlatih dari dropdown Model .
Pilih Sebarkan untuk memulai pekerjaan penyebaran.
Setelah penyebaran berhasil, tanggal kedaluwarsa akan muncul di sampingnya. Kedaluwarsa penyebaran adalah ketika model yang Anda sebarkan tidak akan tersedia untuk digunakan untuk prediksi, yang biasanya terjadi dua belas bulan setelah konfigurasi pelatihan kedaluwarsa.
Anda akan menggunakan nama proyek dan nama penyebaran di bagian berikutnya.
Mengenali niat dari mikrofon
Ikuti langkah-langkah ini untuk membuat aplikasi konsol baru dan memasang Speech SDK.
Buka perintah di mana Anda menginginkan proyek baru, dan buat aplikasi konsol dengan .NET CLI. File
Program.cs
harus dibuat di direktori proyek.dotnet new console
Pasang Speech SDK di proyek baru Anda dengan .NET CLI.
dotnet add package Microsoft.CognitiveServices.Speech
Ganti isi
Program.cs
dengan kode berikut.using Microsoft.CognitiveServices.Speech; using Microsoft.CognitiveServices.Speech.Audio; using Microsoft.CognitiveServices.Speech.Intent; class Program { // This example requires environment variables named: // "LANGUAGE_KEY", "LANGUAGE_ENDPOINT", "SPEECH_KEY", and "SPEECH_REGION" static string languageKey = Environment.GetEnvironmentVariable("LANGUAGE_KEY"); static string languageEndpoint = Environment.GetEnvironmentVariable("LANGUAGE_ENDPOINT"); static string speechKey = Environment.GetEnvironmentVariable("SPEECH_KEY"); static string speechRegion = Environment.GetEnvironmentVariable("SPEECH_REGION"); // Your CLU project name and deployment name. static string cluProjectName = "YourProjectNameGoesHere"; static string cluDeploymentName = "YourDeploymentNameGoesHere"; async static Task Main(string[] args) { var speechConfig = SpeechConfig.FromSubscription(speechKey, speechRegion); speechConfig.SpeechRecognitionLanguage = "en-US"; using var audioConfig = AudioConfig.FromDefaultMicrophoneInput(); // Creates an intent recognizer in the specified language using microphone as audio input. using (var intentRecognizer = new IntentRecognizer(speechConfig, audioConfig)) { var cluModel = new ConversationalLanguageUnderstandingModel( languageKey, languageEndpoint, cluProjectName, cluDeploymentName); var collection = new LanguageUnderstandingModelCollection(); collection.Add(cluModel); intentRecognizer.ApplyLanguageModels(collection); Console.WriteLine("Speak into your microphone."); var recognitionResult = await intentRecognizer.RecognizeOnceAsync().ConfigureAwait(false); // Checks result. if (recognitionResult.Reason == ResultReason.RecognizedIntent) { Console.WriteLine($"RECOGNIZED: Text={recognitionResult.Text}"); Console.WriteLine($" Intent Id: {recognitionResult.IntentId}."); Console.WriteLine($" Language Understanding JSON: {recognitionResult.Properties.GetProperty(PropertyId.LanguageUnderstandingServiceResponse_JsonResult)}."); } else if (recognitionResult.Reason == ResultReason.RecognizedSpeech) { Console.WriteLine($"RECOGNIZED: Text={recognitionResult.Text}"); Console.WriteLine($" Intent not recognized."); } else if (recognitionResult.Reason == ResultReason.NoMatch) { Console.WriteLine($"NOMATCH: Speech could not be recognized."); } else if (recognitionResult.Reason == ResultReason.Canceled) { var cancellation = CancellationDetails.FromResult(recognitionResult); Console.WriteLine($"CANCELED: Reason={cancellation.Reason}"); if (cancellation.Reason == CancellationReason.Error) { Console.WriteLine($"CANCELED: ErrorCode={cancellation.ErrorCode}"); Console.WriteLine($"CANCELED: ErrorDetails={cancellation.ErrorDetails}"); Console.WriteLine($"CANCELED: Did you update the subscription info?"); } } } } }
Dalam
Program.cs
aturcluProjectName
variabel dancluDeploymentName
ke nama proyek dan penyebaran Anda. Untuk informasi tentang cara membuat proyek dan penyebaran CLU, lihat Membuat proyek LUIS Percakapan.Untuk mengubah bahasa pengenalan ucapan, ganti
en-US
dengan bahasa lain yang didukung. Misalnya,es-ES
untuk Spanyol (Spanyol). Bahasa default adalahen-US
jika Anda tidak menentukan bahasa. Untuk detail tentang cara mengidentifikasi salah satu dari beberapa bahasa yang mungkin diucapkan, lihat identifikasi bahasa.
Jalankan aplikasi konsol baru Anda untuk memulai pengenalan ucapan dari mikrofon:
dotnet run
Penting
Pastikan Anda mengatur LANGUAGE_KEY
variabel lingkungan , LANGUAGE_ENDPOINT
, SPEECH_KEY
, dan SPEECH_REGION
seperti yang dijelaskan di atas. Jika Anda tidak mengatur variabel ini, sampel akan gagal dengan pesan kesalahan.
Bicaralah ke mikrofon Saat diminta. Apa yang Anda bicarakan harus dikeluarkan sebagai teks:
Speak into your microphone.
RECOGNIZED: Text=Turn on the lights.
Intent Id: HomeAutomation.TurnOn.
Language Understanding JSON: {"kind":"ConversationResult","result":{"query":"turn on the lights","prediction":{"topIntent":"HomeAutomation.TurnOn","projectKind":"Conversation","intents":[{"category":"HomeAutomation.TurnOn","confidenceScore":0.97712576},{"category":"HomeAutomation.TurnOff","confidenceScore":0.8431633},{"category":"None","confidenceScore":0.782861}],"entities":[{"category":"HomeAutomation.DeviceType","text":"lights","offset":12,"length":6,"confidenceScore":1,"extraInformation":[{"extraInformationKind":"ListKey","key":"light"}]}]}}}.
Catatan
Dukungan untuk respons JSON untuk CLU melalui properti LanguageUnderstandingServiceResponse_JsonResult ditambahkan di Speech SDK versi 1.26.
Niat dikembalikan dalam urutan probabilitas kemungkinan besar kemungkinan besar. Berikut adalah versi berformat dari output JSON di mana topIntent
adalah HomeAutomation.TurnOn
dengan skor keyakinan 0,97712576 (97,71%). Niat kedua yang kemungkinan besar mungkin HomeAutomation.TurnOff
dengan skor keyakinan 0,8985081 (84,31%).
{
"kind": "ConversationResult",
"result": {
"query": "turn on the lights",
"prediction": {
"topIntent": "HomeAutomation.TurnOn",
"projectKind": "Conversation",
"intents": [
{
"category": "HomeAutomation.TurnOn",
"confidenceScore": 0.97712576
},
{
"category": "HomeAutomation.TurnOff",
"confidenceScore": 0.8431633
},
{
"category": "None",
"confidenceScore": 0.782861
}
],
"entities": [
{
"category": "HomeAutomation.DeviceType",
"text": "lights",
"offset": 12,
"length": 6,
"confidenceScore": 1,
"extraInformation": [
{
"extraInformationKind": "ListKey",
"key": "light"
}
]
}
]
}
}
}
Keterangan
Sekarang setelah Anda menyelesaikan mulai cepat, berikut beberapa pertimbangan tambahan:
- Contoh ini menggunakan operasi
RecognizeOnceAsync
untuk mentranskripsikan ucapan hingga 30 detik, atau sampai keheningan terdeteksi. Untuk informasi tentang pengenalan berkelanjutan untuk audio yang lebih lama, termasuk percakapan multibahasa, lihat Cara mengenali ucapan. - Untuk mengenali ucapan dari file audio, gunakan
FromWavFileInput
sebagai penggantiFromDefaultMicrophoneInput
:using var audioConfig = AudioConfig.FromWavFileInput("YourAudioFile.wav");
- Untuk file audio terkompresi seperti MP4, instal GStreamer dan gunakan
PullAudioInputStream
atauPushAudioInputStream
. Untuk informasi selengkapnya, lihat Cara menggunakan audio input terkompresi.
Membersihkan sumber daya
Anda dapat menggunakan portal Azure atau Azure Command Line Interface (CLI) untuk menghapus sumber daya Bahasa dan Ucapan yang Anda buat.
Dokumentasi referensi | Paket (NuGet) | Sampel Tambahan pada GitHub
Dalam mulai cepat ini, Anda akan menggunakan layanan Ucapan dan Bahasa untuk mengenali niat dari data audio yang diambil dari mikrofon. Secara khusus, Anda akan menggunakan layanan Ucapan untuk mengenali ucapan, dan model Pemahaman Bahasa Percakapan (CLU) untuk mengidentifikasi niat.
Penting
Pemahaman Bahasa Percakapan (CLU) tersedia untuk C# dan C++ dengan Speech SDK versi 1.25 atau yang lebih baru.
Prasyarat
- Langganan Azure - Membuat langganan gratis
- Buat Sumber daya Bahasa di portal Azure.
- Dapatkan kunci dan titik akhir sumber daya Bahasa. Setelah sumber daya Bahasa Anda disebarkan, pilih Buka sumber daya untuk melihat dan mengelola kunci. Untuk informasi selengkapnya tentang sumber daya layanan Azure AI, lihat Mendapatkan kunci untuk sumber daya Anda.
- Buat sumber daya Azure di portal Azure.
- Dapatkan kunci dan wilayah sumber daya Ucapan. Setelah sumber daya Azure Cognitive Service untuk Ucapan Anda disebarkan, pilih Buka sumber daya untuk melihat dan mengelola kunci. Untuk informasi selengkapnya tentang sumber daya layanan Azure AI, lihat Mendapatkan kunci untuk sumber daya Anda.
Menyiapkan lingkungan
Speech SDK tersedia sebagai paket NuGet dan menerapkan .NET Standar 2.0. Anda menginstal Speech SDK nanti dalam panduan ini, tetapi pertama-tama periksa panduan penginstalan SDK untuk persyaratan lainnya.
Atur variabel lingkungan
Contoh ini memerlukan variabel lingkungan bernama LANGUAGE_KEY
, , LANGUAGE_ENDPOINT
SPEECH_KEY
, dan SPEECH_REGION
.
Aplikasi Anda harus diautentikasi untuk mengakses sumber daya layanan Azure AI. Untuk produksi, gunakan cara yang aman dalam menyimpan dan mengakses info masuk Anda. Misalnya, setelah Anda mendapatkan kunci untuk sumber , tulis ke variabel lingkungan baru di komputer lokal yang menjalankan aplikasi.
Tip
Jangan sertakan kunci langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik. Lihat artikel keamanan layanan Azure AI untuk opsi autentikasi lainnya seperti Azure Key Vault.
Untuk mengatur variabel lingkungan, buka jendela konsol, dan ikuti instruksi untuk sistem operasi dan lingkungan pengembangan Anda.
- Untuk mengatur
LANGUAGE_KEY
variabel lingkungan, gantiyour-language-key
dengan salah satu kunci untuk sumber daya Anda. - Untuk mengatur
LANGUAGE_ENDPOINT
variabel lingkungan, gantiyour-language-endpoint
dengan salah satu wilayah untuk sumber daya Anda. - Untuk mengatur
SPEECH_KEY
variabel lingkungan, gantiyour-speech-key
dengan salah satu kunci untuk sumber daya Anda. - Untuk mengatur
SPEECH_REGION
variabel lingkungan, gantiyour-speech-region
dengan salah satu wilayah untuk sumber daya Anda.
setx LANGUAGE_KEY your-language-key
setx LANGUAGE_ENDPOINT your-language-endpoint
setx SPEECH_KEY your-speech-key
setx SPEECH_REGION your-speech-region
Catatan
Jika Anda hanya perlu mengakses variabel lingkungan di konsol yang sedang berjalan saat ini, Anda dapat mengatur variabel lingkungan dengan set
alih-alih setx
.
Setelah menambahkan variabel lingkungan, Anda mungkin perlu memulai ulang program yang sedang berjalan yang perlu membaca variabel lingkungan, termasuk jendela konsol. Misalnya, jika Anda menggunakan Visual Studio sebagai editor, hidupkan ulang Visual Studio sebelum menjalankan contoh.
Membuat proyek Luis Percakapan
Setelah Anda membuat sumber daya Bahasa, buat proyek pemahaman bahasa percakapan di Language Studio. Proyek adalah area kerja untuk membuat model ML kustom Anda berdasarkan data Anda. Proyek Anda hanya dapat diakses oleh Anda dan orang lain yang memiliki akses ke sumber daya Bahasa yang digunakan.
Buka Language Studio dan masuk dengan akun Azure Anda.
Membuat proyek pemahaman bahasa percakapan
Untuk mulai cepat ini, Anda dapat mengunduh sampel proyek otomatisasi rumah ini dan mengimpornya. Proyek ini dapat memprediksi perintah yang dimaksudkan dari input pengguna, seperti menyalakan dan mematikan lampu.
Di bawah bagian Pahami pertanyaan dan bahasa percakapan di Language Studio, pilih Pemahaman bahasa percakapan.
Ini akan membawa Anda ke halaman Proyek pemahaman bahasa percakapan. Di samping tombol Buat proyek baru pilih Impor.
Di jendela yang muncul, unggah file JSON yang ingin Anda impor. Pastikan file Anda mengikuti format JSON yang didukung.
Setelah pengunggahan selesai, Anda akan mendarat di halaman definisi Skema . Untuk mulai cepat ini, skema sudah dibuat, dan ucapan sudah diberi label dengan tujuan dan entitas.
Latih model Anda
Biasanya, setelah membuat proyek, Anda harus membangun skema dan memberi label ucapan. Untuk mulai cepat ini, kami sudah mengimpor proyek siap dengan skema bawaan dan ucapan berlabel.
Untuk melatih model, Anda perlu memulai pekerjaan pelatihan. Output dari pekerjaan pelatihan yang sukses adalah model terlatih Anda.
Untuk mulai melatih model Anda dari dalam Language Studio:
Pilih Model kereta api dari menu sebelah kiri.
Pilih Mulai pekerjaan pelatihan dari menu atas.
Pilih Latih model baru dan masukkan nama model baru di kotak teks. Jika tidak, untuk mengganti model yang sudah ada dengan model yang dilatih pada data baru, pilih Timpa model yang sudah ada lalu pilih model yang sudah ada. Menimpa model terlatih tidak dapat diubah, tetapi tidak akan memengaruhi model yang Anda sebarkan hingga Anda menyebarkan model baru.
Pilih mode pelatihan. Anda dapat memilih pelatihan Standar untuk pelatihan yang lebih cepat, tetapi hanya tersedia untuk bahasa Inggris. Atau Anda dapat memilih Pelatihan tingkat lanjut yang didukung untuk bahasa lain dan proyek multibahasa, tetapi melibatkan waktu pelatihan yang lebih lama. Pelajari selengkapnya tentang mode pelatihan.
Pilih metode pemisahan data. Anda dapat memilih Memisahkan set pengujian secara otomatis dari data pelatihan di mana sistem akan membagi ucapan Anda antara set pelatihan dan pengujian, sesuai dengan persentase yang ditentukan. Atau Anda dapat Menggunakan pemisahan manual data pelatihan dan pengujian, opsi ini hanya diaktifkan jika Anda telah menambahkan ucapan ke perangkat pengujian saat memberi label ucapan Anda.
Pilih tombol Latih.
Pilih ID pekerjaan pelatihan dari daftar. Panel akan muncul di mana Anda dapat memeriksa kemajuan pelatihan, status pekerjaan, dan detail lainnya untuk pekerjaan ini.
Catatan
- Hanya pekerjaan pelatihan yang diselesaikan, yang akan menghasilkan model.
- Pelatihan dapat memakan waktu antara beberapa menit dan beberapa jam berdasarkan jumlah ucapan.
- Anda hanya dapat memiliki satu pekerjaan pelatihan yang berjalan pada satu waktu. Anda tidak dapat memulai pekerjaan pelatihan lain dalam proyek yang sama sampai pekerjaan yang sedang berjalan selesai.
- Pembelajaran mesin yang digunakan untuk melatih model diperbarui secara berkala. Untuk melatih versi konfigurasi sebelumnya, pilih Pilih di sini untuk mengubah dari halaman Mulai pekerjaan pelatihan dan pilih versi sebelumnya.
sebarkan model anda
Biasanya setelah melatih model, Anda akan meninjau detail evaluasinya. Dalam mulai cepat ini, Anda akan menyebarkan model dan membuatnya tersedia untuk dicoba di Language Studio, atau Anda dapat memanggil API prediksi.
Untuk menyebarkan model Anda dari dalam Language Studio:
Pilih Menyebarkan model dari menu sebelah kiri.
Pilih Tambahkan penyebaran untuk memulai wizard Tambahkan penyebaran .
Pilih Buat nama penyebaran baru untuk membuat penyebaran baru dan tetapkan model terlatih dari menu dropdown di bawah ini. Anda dapat memilih Timpa nama penyebaran yang ada untuk mengganti model yang digunakan oleh penyebaran yang ada secara efektif.
Catatan
Menimpa penyebaran yang ada tidak memerlukan perubahan pada panggilan API Prediksi Anda tetapi hasil yang Anda dapatkan akan didasarkan pada model yang baru ditetapkan.
Pilih model terlatih dari menu dropdown Model .
Pilih Sebarkan untuk memulai pekerjaan penyebaran.
Setelah penyebaran berhasil, tanggal kedaluwarsa akan muncul di sampingnya. Kedaluwarsa penyebaran adalah ketika model yang Anda sebarkan tidak akan tersedia untuk digunakan untuk prediksi, yang biasanya terjadi dua belas bulan setelah konfigurasi pelatihan kedaluwarsa.
Anda akan menggunakan nama proyek dan nama penyebaran di bagian berikutnya.
Mengenali niat dari mikrofon
Ikuti langkah-langkah ini untuk membuat aplikasi konsol baru dan memasang Speech SDK.
Buat proyek konsol C++ baru di Visual Studio Community 2022 bernama
SpeechRecognition
.Pasang Speech SDK di proyek baru Anda dengan manajer paket NuGet.
Install-Package Microsoft.CognitiveServices.Speech
Ganti isi
SpeechRecognition.cpp
dengan kode berikut:#include <iostream> #include <stdlib.h> #include <speechapi_cxx.h> using namespace Microsoft::CognitiveServices::Speech; using namespace Microsoft::CognitiveServices::Speech::Audio; using namespace Microsoft::CognitiveServices::Speech::Intent; std::string GetEnvironmentVariable(const char* name); int main() { // This example requires environment variables named: // "LANGUAGE_KEY", "LANGUAGE_ENDPOINT", "SPEECH_KEY", and "SPEECH_REGION" auto languageKey = GetEnvironmentVariable("LANGUAGE_KEY"); auto languageEndpoint = GetEnvironmentVariable("LANGUAGE_ENDPOINT"); auto speechKey = GetEnvironmentVariable("SPEECH_KEY"); auto speechRegion = GetEnvironmentVariable("SPEECH_REGION"); auto cluProjectName = "YourProjectNameGoesHere"; auto cluDeploymentName = "YourDeploymentNameGoesHere"; if ((size(languageKey) == 0) || (size(languageEndpoint) == 0) || (size(speechKey) == 0) || (size(speechRegion) == 0)) { std::cout << "Please set LANGUAGE_KEY, LANGUAGE_ENDPOINT, SPEECH_KEY, and SPEECH_REGION environment variables." << std::endl; return -1; } auto speechConfig = SpeechConfig::FromSubscription(speechKey, speechRegion); speechConfig->SetSpeechRecognitionLanguage("en-US"); auto audioConfig = AudioConfig::FromDefaultMicrophoneInput(); auto intentRecognizer = IntentRecognizer::FromConfig(speechConfig, audioConfig); std::vector<std::shared_ptr<LanguageUnderstandingModel>> models; auto cluModel = ConversationalLanguageUnderstandingModel::FromResource( languageKey, languageEndpoint, cluProjectName, cluDeploymentName); models.push_back(cluModel); intentRecognizer->ApplyLanguageModels(models); std::cout << "Speak into your microphone.\n"; auto result = intentRecognizer->RecognizeOnceAsync().get(); if (result->Reason == ResultReason::RecognizedIntent) { std::cout << "RECOGNIZED: Text=" << result->Text << std::endl; std::cout << " Intent Id: " << result->IntentId << std::endl; std::cout << " Intent Service JSON: " << result->Properties.GetProperty(PropertyId::LanguageUnderstandingServiceResponse_JsonResult) << std::endl; } else if (result->Reason == ResultReason::RecognizedSpeech) { std::cout << "RECOGNIZED: Text=" << result->Text << " (intent could not be recognized)" << std::endl; } else if (result->Reason == ResultReason::NoMatch) { std::cout << "NOMATCH: Speech could not be recognized." << std::endl; } else if (result->Reason == ResultReason::Canceled) { auto cancellation = CancellationDetails::FromResult(result); std::cout << "CANCELED: Reason=" << (int)cancellation->Reason << std::endl; if (cancellation->Reason == CancellationReason::Error) { std::cout << "CANCELED: ErrorCode=" << (int)cancellation->ErrorCode << std::endl; std::cout << "CANCELED: ErrorDetails=" << cancellation->ErrorDetails << std::endl; std::cout << "CANCELED: Did you update the subscription info?" << std::endl; } } } std::string GetEnvironmentVariable(const char* name) { #if defined(_MSC_VER) size_t requiredSize = 0; (void)getenv_s(&requiredSize, nullptr, 0, name); if (requiredSize == 0) { return ""; } auto buffer = std::make_unique<char[]>(requiredSize); (void)getenv_s(&requiredSize, buffer.get(), requiredSize, name); return buffer.get(); #else auto value = getenv(name); return value ? value : ""; #endif }
Dalam
SpeechRecognition.cpp
aturcluProjectName
variabel dancluDeploymentName
ke nama proyek dan penyebaran Anda. Untuk informasi tentang cara membuat proyek dan penyebaran CLU, lihat Membuat proyek Luis Percakapan.Untuk mengubah bahasa pengenalan ucapan, ganti
en-US
dengan bahasa lain yang didukung. Misalnya,es-ES
untuk Spanyol (Spanyol). Bahasa default adalahen-US
jika Anda tidak menentukan bahasa. Untuk detail tentang cara mengidentifikasi salah satu dari beberapa bahasa yang mungkin diucapkan, lihat identifikasi bahasa.
Bangun dan jalankan aplikasi konsol baru Anda untuk memulai pengenalan ucapan dari mikrofon.
Penting
Pastikan Anda mengatur LANGUAGE_KEY
variabel lingkungan , LANGUAGE_ENDPOINT
, SPEECH_KEY
, dan SPEECH_REGION
seperti yang dijelaskan di atas. Jika Anda tidak mengatur variabel ini, sampel akan gagal dengan pesan kesalahan.
Bicaralah ke mikrofon Saat diminta. Apa yang Anda bicarakan harus dikeluarkan sebagai teks:
Speak into your microphone.
RECOGNIZED: Text=Turn on the lights.
Intent Id: HomeAutomation.TurnOn.
Language Understanding JSON: {"kind":"ConversationResult","result":{"query":"turn on the lights","prediction":{"topIntent":"HomeAutomation.TurnOn","projectKind":"Conversation","intents":[{"category":"HomeAutomation.TurnOn","confidenceScore":0.97712576},{"category":"HomeAutomation.TurnOff","confidenceScore":0.8431633},{"category":"None","confidenceScore":0.782861}],"entities":[{"category":"HomeAutomation.DeviceType","text":"lights","offset":12,"length":6,"confidenceScore":1,"extraInformation":[{"extraInformationKind":"ListKey","key":"light"}]}]}}}.
Catatan
Dukungan untuk respons JSON untuk CLU melalui properti LanguageUnderstandingServiceResponse_JsonResult ditambahkan di Speech SDK versi 1.26.
Niat dikembalikan dalam urutan probabilitas kemungkinan besar kemungkinan besar. Berikut adalah versi berformat dari output JSON di mana topIntent
adalah HomeAutomation.TurnOn
dengan skor keyakinan 0,97712576 (97,71%). Niat kedua yang paling mungkin adalah HomeAutomation.TurnOff
dengan skor keyakinan 0,8985081 (84,31%).
{
"kind": "ConversationResult",
"result": {
"query": "turn on the lights",
"prediction": {
"topIntent": "HomeAutomation.TurnOn",
"projectKind": "Conversation",
"intents": [
{
"category": "HomeAutomation.TurnOn",
"confidenceScore": 0.97712576
},
{
"category": "HomeAutomation.TurnOff",
"confidenceScore": 0.8431633
},
{
"category": "None",
"confidenceScore": 0.782861
}
],
"entities": [
{
"category": "HomeAutomation.DeviceType",
"text": "lights",
"offset": 12,
"length": 6,
"confidenceScore": 1,
"extraInformation": [
{
"extraInformationKind": "ListKey",
"key": "light"
}
]
}
]
}
}
}
Keterangan
Sekarang setelah Anda menyelesaikan mulai cepat, berikut beberapa pertimbangan tambahan:
- Contoh ini menggunakan operasi
RecognizeOnceAsync
untuk mentranskripsikan ucapan hingga 30 detik, atau sampai keheningan terdeteksi. Untuk informasi tentang pengenalan berkelanjutan untuk audio yang lebih lama, termasuk percakapan multibahasa, lihat Cara mengenali ucapan. - Untuk mengenali ucapan dari file audio, gunakan
FromWavFileInput
sebagai penggantiFromDefaultMicrophoneInput
:auto audioInput = AudioConfig::FromWavFileInput("YourAudioFile.wav");
- Untuk file audio terkompresi seperti MP4, instal GStreamer dan gunakan
PullAudioInputStream
atauPushAudioInputStream
. Untuk informasi selengkapnya, lihat Cara menggunakan audio input terkompresi.
Membersihkan sumber daya
Anda dapat menggunakan portal Azure atau Azure Command Line Interface (CLI) untuk menghapus sumber daya Bahasa dan Ucapan yang Anda buat.
Dokumentasi referensi | Sampel Tambahan pada GitHub
Speech SDK untuk Java tidak mendukung pengenalan niat dengan pemahaman bahasa percakapan (CLU). Silakan pilih bahasa pemrograman lain atau referensi Java dan sampel yang ditautkan dari awal artikel ini.