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

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_ENDPOINTSPEECH_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, ganti your-language-key dengan salah satu kunci untuk sumber daya Anda.
  • Untuk mengatur LANGUAGE_ENDPOINT variabel lingkungan, ganti your-language-endpoint dengan salah satu wilayah untuk sumber daya Anda.
  • Untuk mengatur SPEECH_KEY variabel lingkungan, ganti your-speech-key dengan salah satu kunci untuk sumber daya Anda.
  • Untuk mengatur SPEECH_REGION variabel lingkungan, ganti your-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.

  1. Di bawah bagian Pahami pertanyaan dan bahasa percakapan di Language Studio, pilih Pemahaman bahasa percakapan.

    Cuplikan layar yang menunjukkan lokasi LUIS Kustom di halaman arahan Language Studio.

  2. Ini akan membawa Anda ke halaman Proyek pemahaman bahasa percakapan. Di samping tombol Buat proyek baru pilih Impor.

    Cuplikan layar yang menampilkan halaman proyek percakapan di Language Studio.

  3. 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:

  1. Pilih Model kereta api dari menu sebelah kiri.

  2. Pilih Mulai pekerjaan pelatihan dari menu atas.

  3. 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.

  4. 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.

  5. 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.

  6. Pilih tombol Latih.

    Cuplikan layar menampilkan halaman pelatihan di Language Studio.

  7. 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:

  1. Pilih Menyebarkan model dari menu sebelah kiri.

  2. Pilih Tambahkan penyebaran untuk memulai wizard Tambahkan penyebaran .

    Cuplikan layar yang menunjukkan tombol penyebaran model di Language Studio.

  3. 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.

    Cuplikan layar menampilkan layar untuk menambahkan penyebaran baru di studio Bahasa.

  4. Pilih model terlatih dari dropdown Model .

  5. Pilih Sebarkan untuk memulai pekerjaan penyebaran.

  6. 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.

  1. 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
    
  2. Pasang Speech SDK di proyek baru Anda dengan .NET CLI.

    dotnet add package Microsoft.CognitiveServices.Speech
    
  3. 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?");
                    }
                }
            }
        }
    }
    
  4. Dalam Program.cs atur cluProjectName variabel dan cluDeploymentName ke nama proyek dan penyebaran Anda. Untuk informasi tentang cara membuat proyek dan penyebaran CLU, lihat Membuat proyek LUIS Percakapan.

  5. Untuk mengubah bahasa pengenalan ucapan, ganti en-US dengan bahasa lain yang didukung. Misalnya, es-ES untuk Spanyol (Spanyol). Bahasa default adalah en-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_KEYvariabel 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 pengganti FromDefaultMicrophoneInput:
    using var audioConfig = AudioConfig.FromWavFileInput("YourAudioFile.wav");
    
  • Untuk file audio terkompresi seperti MP4, instal GStreamer dan gunakan PullAudioInputStream atau PushAudioInputStream. 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

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_ENDPOINTSPEECH_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, ganti your-language-key dengan salah satu kunci untuk sumber daya Anda.
  • Untuk mengatur LANGUAGE_ENDPOINT variabel lingkungan, ganti your-language-endpoint dengan salah satu wilayah untuk sumber daya Anda.
  • Untuk mengatur SPEECH_KEY variabel lingkungan, ganti your-speech-key dengan salah satu kunci untuk sumber daya Anda.
  • Untuk mengatur SPEECH_REGION variabel lingkungan, ganti your-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.

  1. Di bawah bagian Pahami pertanyaan dan bahasa percakapan di Language Studio, pilih Pemahaman bahasa percakapan.

    Cuplikan layar yang menunjukkan lokasi LUIS Kustom di halaman arahan Language Studio.

  2. Ini akan membawa Anda ke halaman Proyek pemahaman bahasa percakapan. Di samping tombol Buat proyek baru pilih Impor.

    Cuplikan layar yang menampilkan halaman proyek percakapan di Language Studio.

  3. 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:

  1. Pilih Model kereta api dari menu sebelah kiri.

  2. Pilih Mulai pekerjaan pelatihan dari menu atas.

  3. 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.

  4. 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.

  5. 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.

  6. Pilih tombol Latih.

    Cuplikan layar menampilkan halaman pelatihan di Language Studio.

  7. 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:

  1. Pilih Menyebarkan model dari menu sebelah kiri.

  2. Pilih Tambahkan penyebaran untuk memulai wizard Tambahkan penyebaran .

    Cuplikan layar yang menunjukkan tombol penyebaran model di Language Studio.

  3. 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.

    Cuplikan layar menampilkan layar untuk menambahkan penyebaran baru di studio Bahasa.

  4. Pilih model terlatih dari menu dropdown Model .

  5. Pilih Sebarkan untuk memulai pekerjaan penyebaran.

  6. 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.

  1. Buat proyek konsol C++ baru di Visual Studio Community 2022 bernama SpeechRecognition.

  2. Pasang Speech SDK di proyek baru Anda dengan manajer paket NuGet.

    Install-Package Microsoft.CognitiveServices.Speech
    
  3. 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
    }
    
  4. Dalam SpeechRecognition.cpp atur cluProjectName variabel dan cluDeploymentName ke nama proyek dan penyebaran Anda. Untuk informasi tentang cara membuat proyek dan penyebaran CLU, lihat Membuat proyek Luis Percakapan.

  5. Untuk mengubah bahasa pengenalan ucapan, ganti en-US dengan bahasa lain yang didukung. Misalnya, es-ES untuk Spanyol (Spanyol). Bahasa default adalah en-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_KEYvariabel 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 pengganti FromDefaultMicrophoneInput:
    auto audioInput = AudioConfig::FromWavFileInput("YourAudioFile.wav");
    
  • Untuk file audio terkompresi seperti MP4, instal GStreamer dan gunakan PullAudioInputStream atau PushAudioInputStream. 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.

Langkah berikutnya