Menggunakan penilaian pengucapan

Dalam artikel ini, Anda mempelajari cara mengevaluasi pengucapan dengan ucapan ke teks melalui Speech SDK. Penilaian pengucapan mengevaluasi pengucapan ucapan dan memberikan umpan balik kepada pembicara tentang keakuratan dan kefasihan audio lisan.

Menggunakan penilaian pengucapan dalam mode streaming

Penilaian pengucapan mendukung mode streaming tanpa gangguan. Waktu perekaman dapat tidak terbatas melalui Speech SDK. Selama Anda tidak berhenti merekam, proses evaluasi tidak selesai dan Anda dapat menjeda dan melanjutkan evaluasi dengan nyaman.

Untuk informasi tentang ketersediaan penilaian pengucapan, lihat bahasa yang didukung dan wilayah yang tersedia.

Sebagai garis besar, penggunaan biaya penilaian pengucapan sama dengan ucapan ke teks untuk harga tingkat bayar sesuai penggunaan atau komitmen. Jika Anda membeli tingkat komitmen untuk ucapan ke teks, pengeluaran untuk penilaian pengucapan akan memenuhi komitmen. Untuk informasi selengkapnya, lihat Harga.

Untuk cara menggunakan Penilaian Pengucapan dalam mode streaming di aplikasi Anda sendiri, lihat kode sampel.

Untuk cara menggunakan Penilaian Pengucapan dalam mode streaming di aplikasi Anda sendiri, lihat kode sampel.

Untuk cara menggunakan Penilaian Pengucapan dalam mode streaming di aplikasi Anda sendiri, lihat kode sampel.

Untuk cara menggunakan Penilaian Pengucapan dalam mode streaming di aplikasi Anda sendiri, lihat kode sampel.

Untuk cara menggunakan Penilaian Pengucapan dalam mode streaming di aplikasi Anda sendiri, lihat kode sampel.

Untuk cara menggunakan Penilaian Pengucapan dalam mode streaming di aplikasi Anda sendiri, lihat kode sampel.

Untuk cara menggunakan Penilaian Pengucapan dalam mode streaming di aplikasi Anda sendiri, lihat kode sampel.

Mengatur parameter konfigurasi

Catatan

Penilaian pengucapan tidak tersedia dengan Speech SDK untuk Go. Anda dapat membaca tentang konsep dalam panduan ini. Pilih bahasa pemrograman lain untuk solusi Anda.

SpeechRecognizerDalam , Anda dapat menentukan bahasa untuk mempelajari atau mempraktikkan meningkatkan pengucapan. Lokal defaultnya adalah en-US. Untuk mempelajari cara menentukan bahasa pembelajaran untuk penilaian pengucapan di aplikasi Anda sendiri, lihat kode sampel.

Tip

Jika Anda tidak yakin lokal mana yang akan diatur untuk bahasa yang memiliki beberapa lokal, coba setiap lokal secara terpisah. Misalnya, untuk bahasa Spanyol, coba es-ES dan es-MX. Tentukan skor lokal mana yang lebih tinggi untuk skenario Anda.

Anda harus membuat PronunciationAssessmentConfig objek. Anda dapat mengatur EnableProsodyAssessment dan EnableContentAssessmentWithTopic mengaktifkan penilaian prosody dan konten. Untuk informasi selengkapnya, lihat metode konfigurasi.

var pronunciationAssessmentConfig = new PronunciationAssessmentConfig( 
    referenceText: "", 
    gradingSystem: GradingSystem.HundredMark,  
    granularity: Granularity.Phoneme,  
    enableMiscue: false); 
pronunciationAssessmentConfig.EnableProsodyAssessment(); 
pronunciationAssessmentConfig.EnableContentAssessmentWithTopic("greeting"); 
auto pronunciationConfig = PronunciationAssessmentConfig::Create("", PronunciationAssessmentGradingSystem::HundredMark, PronunciationAssessmentGranularity::Phoneme, false); 
pronunciationConfig->EnableProsodyAssessment(); 
pronunciationConfig->EnableContentAssessmentWithTopic("greeting"); 
PronunciationAssessmentConfig pronunciationConfig = new PronunciationAssessmentConfig("", 
    PronunciationAssessmentGradingSystem.HundredMark, PronunciationAssessmentGranularity.Phoneme, false); 
pronunciationConfig.enableProsodyAssessment(); 
pronunciationConfig.enableContentAssessmentWithTopic("greeting");
pronunciation_config = speechsdk.PronunciationAssessmentConfig( 
    reference_text="", 
    grading_system=speechsdk.PronunciationAssessmentGradingSystem.HundredMark, 
    granularity=speechsdk.PronunciationAssessmentGranularity.Phoneme, 
    enable_miscue=False) 
pronunciation_config.enable_prosody_assessment() 
pronunciation_config.enable_content_assessment_with_topic("greeting")
var pronunciationAssessmentConfig = new sdk.PronunciationAssessmentConfig( 
    referenceText: "", 
    gradingSystem: sdk.PronunciationAssessmentGradingSystem.HundredMark,  
    granularity: sdk.PronunciationAssessmentGranularity.Phoneme,  
    enableMiscue: false); 
pronunciationAssessmentConfig.enableProsodyAssessment(); 
pronunciationAssessmentConfig.enableContentAssessmentWithTopic("greeting");  
SPXPronunciationAssessmentConfiguration *pronunicationConfig = 
[[SPXPronunciationAssessmentConfiguration alloc] init:@"" gradingSystem:SPXPronunciationAssessmentGradingSystem_HundredMark granularity:SPXPronunciationAssessmentGranularity_Phoneme enableMiscue:false]; 
[pronunicationConfig enableProsodyAssessment]; 
[pronunicationConfig enableContentAssessmentWithTopic:@"greeting"]; 
let pronAssessmentConfig = try! SPXPronunciationAssessmentConfiguration("", 
    gradingSystem: .hundredMark, 
    granularity: .phoneme, 
    enableMiscue: false) 
pronAssessmentConfig.enableProsodyAssessment() 
pronAssessmentConfig.enableContentAssessment(withTopic: "greeting")

Tabel ini mencantumkan beberapa parameter konfigurasi utama untuk penilaian pengucapan.

Parameter Deskripsi
ReferenceText Teks yang dievaluasi oleh pengucapan.

Parameter ReferenceText bersifat opsional. Atur teks referensi jika Anda ingin menjalankan penilaian skrip untuk skenario pembelajaran bahasa baca. Jangan atur teks referensi jika Anda ingin menjalankan penilaian yang tidak diskrip.

Untuk perbedaan harga antara penilaian berskrip dan tidak diskrip, lihat Harga.
GradingSystem Sistem poin untuk kalibrasi skor. FivePoint memberikan skor 0-5 floating point. HundredMark memberikan skor floating point 0-100. Default: FivePoint.
Granularity Menentukan tingkat granularitas evaluasi terendah. Mengembalikan skor untuk tingkat yang lebih besar dari atau sama dengan nilai minimal. Nilai yang diterima adalah Phoneme, yang menunjukkan skor pada teks lengkap, kata, suku kata, dan tingkat fonem, Word, yang memperlihatkan skor pada teks lengkap dan tingkat kata, atau FullText, yang hanya menunjukkan skor pada tingkat teks lengkap. Teks referensi lengkap yang disediakan bisa berupa kata, kalimat, atau paragraf. Ini tergantung pada teks referensi input Anda. Default: Phoneme.
EnableMiscue Memungkinkan perhitungan miscue ketika kata-kata yang diucapkan dibandingkan dengan teks referensi. Mengaktifkan kesalahan bersifat opsional. Jika nilai ini adalah True, nilai hasil ErrorType dapat diatur ke Omission atau Insertion berdasarkan perbandingan. Nilai adalah False dan True. Default: False. Untuk mengaktifkan perhitungan yang salah, atur ke EnableMiscueTrue. Anda dapat merujuk ke cuplikan kode di bawah tabel.
ScenarioId GUID untuk sistem titik yang disesuaikan.

Metode konfigurasi

Tabel ini mencantumkan beberapa metode opsional yang dapat Anda atur untuk objek.PronunciationAssessmentConfig

Catatan

Penilaian konten dan prosody hanya tersedia di lokal en-US .

Untuk menjelajahi penilaian konten dan prosody, tingkatkan ke SDK versi 1.35.0 atau yang lebih baru.

Metode Deskripsi
EnableProsodyAssessment Mengaktifkan penilaian prosody untuk evaluasi pengucapan Anda. Fitur ini menilai aspek-aspek seperti stres, intonasi, kecepatan berbicara, dan ritme. Fitur ini memberikan wawasan tentang kealamaan dan ekspresi ucapan Anda.

Mengaktifkan penilaian prosody bersifat opsional. Jika metode ini dipanggil, ProsodyScore nilai hasil dikembalikan.
EnableContentAssessmentWithTopic Mengaktifkan penilaian konten. Penilaian konten adalah bagian dari penilaian yang tidak ditulis untuk skenario pembelajaran bahasa berbicara. Dengan memberikan deskripsi, Anda dapat meningkatkan pemahaman penilaian tentang topik tertentu yang diucapkan. Misalnya, dalam panggilan pronunciationAssessmentConfig.EnableContentAssessmentWithTopic("greeting");C# . Anda dapat mengganti 'salam' dengan teks yang Anda inginkan untuk menjelaskan topik. Deskripsi tidak memiliki batas panjang dan saat ini hanya mendukung en-US lokal.

Mendapatkan hasil penilaian pengucapan

Saat ucapan dikenali, Anda dapat meminta hasil penilaian pengucapan sebagai objek SDK atau string JSON.

using (var speechRecognizer = new SpeechRecognizer(
    speechConfig,
    audioConfig))
{
    pronunciationAssessmentConfig.ApplyTo(speechRecognizer);
    var speechRecognitionResult = await speechRecognizer.RecognizeOnceAsync();

    // The pronunciation assessment result as a Speech SDK object
    var pronunciationAssessmentResult =
        PronunciationAssessmentResult.FromResult(speechRecognitionResult);

    // The pronunciation assessment result as a JSON string
    var pronunciationAssessmentResultJson = speechRecognitionResult.Properties.GetProperty(PropertyId.SpeechServiceResponse_JsonResult);
}

Hasil Word, suku kata, dan phoneme tidak tersedia dengan menggunakan objek SDK dengan Speech SDK untuk C++. Hasil kata, suku kata, dan fonem hanya tersedia dalam string JSON.

auto speechRecognizer = SpeechRecognizer::FromConfig(
    speechConfig,
    audioConfig);

pronunciationAssessmentConfig->ApplyTo(speechRecognizer);
speechRecognitionResult = speechRecognizer->RecognizeOnceAsync().get();

// The pronunciation assessment result as a Speech SDK object
auto pronunciationAssessmentResult =
    PronunciationAssessmentResult::FromResult(speechRecognitionResult);

// The pronunciation assessment result as a JSON string
auto pronunciationAssessmentResultJson = speechRecognitionResult->Properties.GetProperty(PropertyId::SpeechServiceResponse_JsonResult);

Untuk mempelajari cara menentukan bahasa pembelajaran untuk penilaian pengucapan di aplikasi Anda sendiri, lihat kode sampel.

Untuk pengembangan aplikasi Android, kata, suku kata, dan hasil phoneme tersedia dengan menggunakan objek SDK dengan Speech SDK untuk Java. Hasilnya juga tersedia dalam string JSON. Untuk pengembangan aplikasi Java Runtime (JRE), hasil kata, suku kata, dan fonem hanya tersedia dalam string JSON.

SpeechRecognizer speechRecognizer = new SpeechRecognizer(
    speechConfig,
    audioConfig);

pronunciationAssessmentConfig.applyTo(speechRecognizer);
Future<SpeechRecognitionResult> future = speechRecognizer.recognizeOnceAsync();
SpeechRecognitionResult speechRecognitionResult = future.get(30, TimeUnit.SECONDS);

// The pronunciation assessment result as a Speech SDK object
PronunciationAssessmentResult pronunciationAssessmentResult =
    PronunciationAssessmentResult.fromResult(speechRecognitionResult);

// The pronunciation assessment result as a JSON string
String pronunciationAssessmentResultJson = speechRecognitionResult.getProperties().getProperty(PropertyId.SpeechServiceResponse_JsonResult);

recognizer.close();
speechConfig.close();
audioConfig.close();
pronunciationAssessmentConfig.close();
speechRecognitionResult.close();
var speechRecognizer = SpeechSDK.SpeechRecognizer.FromConfig(speechConfig, audioConfig);

pronunciationAssessmentConfig.applyTo(speechRecognizer);

speechRecognizer.recognizeOnceAsync((speechRecognitionResult: SpeechSDK.SpeechRecognitionResult) => {
    // The pronunciation assessment result as a Speech SDK object
    var pronunciationAssessmentResult = SpeechSDK.PronunciationAssessmentResult.fromResult(speechRecognitionResult);

    // The pronunciation assessment result as a JSON string
    var pronunciationAssessmentResultJson = speechRecognitionResult.properties.getProperty(SpeechSDK.PropertyId.SpeechServiceResponse_JsonResult);
},
{});

Untuk mempelajari cara menentukan bahasa pembelajaran untuk penilaian pengucapan di aplikasi Anda sendiri, lihat kode sampel.

speech_recognizer = speechsdk.SpeechRecognizer(
        speech_config=speech_config, \
        audio_config=audio_config)

pronunciation_assessment_config.apply_to(speech_recognizer)
speech_recognition_result = speech_recognizer.recognize_once()

# The pronunciation assessment result as a Speech SDK object
pronunciation_assessment_result = speechsdk.PronunciationAssessmentResult(speech_recognition_result)

# The pronunciation assessment result as a JSON string
pronunciation_assessment_result_json = speech_recognition_result.properties.get(speechsdk.PropertyId.SpeechServiceResponse_JsonResult)

Untuk mempelajari cara menentukan bahasa pembelajaran untuk penilaian pengucapan di aplikasi Anda sendiri, lihat kode sampel.

SPXSpeechRecognizer* speechRecognizer = \
        [[SPXSpeechRecognizer alloc] initWithSpeechConfiguration:speechConfig
                                              audioConfiguration:audioConfig];

[pronunciationAssessmentConfig applyToRecognizer:speechRecognizer];

SPXSpeechRecognitionResult *speechRecognitionResult = [speechRecognizer recognizeOnce];

// The pronunciation assessment result as a Speech SDK object
SPXPronunciationAssessmentResult* pronunciationAssessmentResult = [[SPXPronunciationAssessmentResult alloc] init:speechRecognitionResult];

// The pronunciation assessment result as a JSON string
NSString* pronunciationAssessmentResultJson = [speechRecognitionResult.properties getPropertyByName:SPXSpeechServiceResponseJsonResult];

Untuk mempelajari cara menentukan bahasa pembelajaran untuk penilaian pengucapan di aplikasi Anda sendiri, lihat kode sampel.

let speechRecognizer = try! SPXSpeechRecognizer(speechConfiguration: speechConfig, audioConfiguration: audioConfig)

try! pronConfig.apply(to: speechRecognizer)

let speechRecognitionResult = try? speechRecognizer.recognizeOnce()

// The pronunciation assessment result as a Speech SDK object
let pronunciationAssessmentResult = SPXPronunciationAssessmentResult(speechRecognitionResult!)

// The pronunciation assessment result as a JSON string
let pronunciationAssessmentResultJson = speechRecognitionResult!.properties?.getPropertyBy(SPXPropertyId.speechServiceResponseJsonResult)

Parameter hasil

Bergantung pada apakah Anda menggunakan penilaian berskrip atau tidak, Anda bisa mendapatkan hasil penilaian pengucapan yang berbeda. Penilaian skrip adalah untuk skenario pembelajaran bahasa baca. Penilaian yang tidak diskrip adalah untuk skenario pembelajaran bahasa berbicara.

Catatan

Untuk perbedaan harga antara penilaian berskrip dan tidak diskrip, lihat Harga.

Hasil penilaian berskrip

Tabel ini mencantumkan beberapa hasil penilaian pengucapan utama untuk penilaian berskrip, atau skenario membaca.

Parameter Deskripsi Granularitas
AccuracyScore Akurasi pelafalan ucapan. Akurasi menunjukkan seberapa dekat fonem cocok dengan pengucapan penutur asli. Skor akurasi suku kata, kata, dan teks lengkap dikumpulkan dari skor akurasi tingkat fonem, dan disempurnakan dengan tujuan penilaian. tingkat Telepon me,
Tingkat suku kata (hanya en-US),
Tingkat kata,
Tingkat Teks Penuh
FluencyScore Kefasihan ucapan yang diberikan. Kefasihan menunjukkan seberapa dekat ucapan cocok dengan penggunaan jeda diam di antara kata-kata penutur asli. Tingkat Teks Penuh
CompletenessScore Kelengkapan ucapan, dihitung dengan rasio kata yang diucapkan ke teks referensi input. Tingkat Teks Penuh
ProsodyScore Prosody dari ucapan yang diberikan. Prosody menunjukkan betapa alaminya ucapan yang diberikan, termasuk stres, intonasi, kecepatan berbicara, dan ritme. Tingkat Teks Penuh
PronScore Skor keseluruhan kualitas pengucapan dari ucapan yang diberikan. PronScore diagregasi dari AccuracyScore, FluencyScore, dan CompletenessScore dengan bobot. Tingkat Teks Penuh
ErrorType Nilai ini menunjukkan jenis kesalahan dibandingkan dengan teks referensi. Opsi mencakup apakah kata dihilangkan, disisipkan, atau disisipkan secara tidak benar dengan pemisah. Ini juga menunjukkan istirahat yang hilang pada tanda baca. Ini juga menunjukkan apakah kata diucapkan dengan buruk, atau naik secara monoton, jatuh, atau datar pada ungkapan. Nilai yang mungkin adalah None untuk tidak ada kesalahan pada kata ini, , Omission, Insertion, MispronunciationUnexpectedBreak, MissingBreak, dan Monotone. Jenis kesalahan bisa ketika Mispronunciation pengucapan AccuracyScore untuk kata di bawah 60. Tingkat kata

Hasil penilaian yang tidak diskrip

Tabel ini mencantumkan beberapa hasil penilaian pengucapan utama untuk penilaian yang tidak ditulis, atau skenario berbicara.

VocabularyScoreparameter , GrammarScore, dan TopicScore digulung hingga penilaian konten gabungan.

Catatan

Penilaian konten dan prosody hanya tersedia di lokal en-US .

Parameter respons Deskripsi Granularitas
AccuracyScore Akurasi pelafalan ucapan. Akurasi menunjukkan seberapa dekat fonem cocok dengan pengucapan penutur asli. Skor akurasi suku kata, kata, dan teks lengkap dikumpulkan dari skor akurasi tingkat fonem, dan disempurnakan dengan tujuan penilaian. tingkat Telepon me,
Tingkat suku kata (hanya en-US),
Tingkat kata,
Tingkat Teks Penuh
FluencyScore Kefasihan ucapan yang diberikan. Kefasihan menunjukkan seberapa dekat ucapan cocok dengan penggunaan jeda diam di antara kata-kata penutur asli. Tingkat Teks Penuh
ProsodyScore Prosody dari ucapan yang diberikan. Prosody menunjukkan betapa alaminya ucapan yang diberikan, termasuk stres, intonasi, kecepatan berbicara, dan ritme. Tingkat Teks Penuh
VocabularyScore Kemampuan dalam penggunaan leksikal. Ini mengevaluasi penggunaan kata-kata pembicara yang efektif dan kepatutannya dalam konteks yang diberikan untuk mengekspresikan ide secara akurat, dan tingkat kompleksitas leksikal. Tingkat Teks Penuh
GrammarScore Kebenaran dalam menggunakan tata bahasa dan berbagai pola kalimat. Akurasi leksikal, akurasi tata bahasa, dan keragaman struktur kalimat secara bersama-sama meningkatkan kesalahan tata bahasa. Tingkat Teks Penuh
TopicScore Tingkat pemahaman dan keterlibatan dengan topik, yang memberikan wawasan tentang kemampuan pembicara untuk mengekspresikan pemikiran dan ide mereka secara efektif dan kemampuan untuk terlibat dengan topik tersebut. Tingkat Teks Penuh
PronScore Skor keseluruhan kualitas pengucapan dari ucapan yang diberikan. Nilai ini dikumpulkan dari AccuracyScore, , FluencyScoredan CompletenessScore dengan berat. Tingkat Teks Penuh
ErrorType Kata diucapkan dengan buruk, dimasukkan dengan tidak benar dengan jeda, atau kehilangan jeda pada tanda baca. Ini juga menunjukkan apakah pengucapan naik secara monoton, jatuh, atau datar pada ungkapan. Nilai yang mungkin adalah None untuk tidak ada kesalahan pada kata ini, , Mispronunciation, UnexpectedBreakMissingBreak, dan Monotone. Tingkat kata

Tabel berikut ini menjelaskan hasil penilaian prosody secara lebih rinci:

Bidang Deskripsi
ProsodyScore Skor prosody dari seluruh ucapan.
Feedback Umpan balik tentang tingkat kata, termasuk Break dan Intonation.
Break
ErrorTypes Jenis kesalahan yang terkait dengan jeda, termasuk UnexpectedBreak dan MissingBreak. Versi saat ini tidak menyediakan jenis kesalahan pemutusan. Anda perlu mengatur ambang batas pada bidang UnexpectedBreak – Confidence dan MissingBreak – confidence untuk memutuskan apakah ada pemisah yang tidak terduga atau kehilangan pemisah sebelum kata.
UnexpectedBreak Menunjukkan pemisah tak terduga sebelum kata.
MissingBreak Menunjukkan pemisah yang hilang sebelum kata.
Thresholds Ambang batas yang disarankan pada kedua skor keyakinan adalah 0,75. Itu berarti, jika nilai lebih besar dari UnexpectedBreak – Confidence 0,75, nilai tersebut memiliki jeda yang tidak terduga. Jika nilainya lebih besar dari 0,75, nilai MissingBreak – confidence tersebut memiliki jeda yang hilang. Meskipun 0,75 adalah nilai yang kami rekomendasikan, lebih baik menyesuaikan ambang batas berdasarkan skenario Anda sendiri. Jika Anda ingin memiliki sensitivitas deteksi variabel pada dua jeda ini, Anda dapat menetapkan ambang batas yang berbeda ke UnexpectedBreak - Confidence bidang dan MissingBreak - Confidence .
Intonation Menunjukkan intonasi dalam ucapan.
ErrorTypes Jenis kesalahan yang terkait dengan intonasi, saat ini hanya mendukung Monotone. Monotone Jika ada di bidang ErrorTypes, ucapan terdeteksi monoton. Monoton terdeteksi pada seluruh ucapan, tetapi tag ditetapkan ke semua kata. Semua kata dalam ucapan yang sama berbagi informasi deteksi monoton yang sama.
Monotone Menunjukkan ucapan monotonik.
Thresholds (Monotone Confidence) Bidang Monotone - SyllablePitchDeltaConfidence dicadangkan untuk deteksi monoton yang disesuaikan pengguna. Jika Anda tidak puas dengan keputusan monoton yang disediakan, sesuaikan ambang batas pada bidang ini untuk menyesuaikan deteksi sesuai dengan preferensi Anda.

Contoh hasil JSON

Hasil penilaian pengucapan berskrip untuk kata lisan "hello" ditampilkan sebagai string JSON dalam contoh berikut.

  • Alfabet fonem adalah IPA.
  • Suku kata ditampilkan bersama fonem untuk kata yang sama.
  • Anda dapat menggunakan nilai Offset dan Duration untuk menyelaraskan suku kata dengan fonem yang sesuai. Misalnya, offset awal (11700000) dari suku loʊ kata kedua selaras dengan fonem ketiga, l. Offset mewakili waktu di mana ucapan yang dikenali dimulai dalam aliran audio. Nilai diukur dalam 100 unit nanodetik. Untuk mempelajari selengkapnya tentang Offset dan Duration, lihat properti respons.
  • Ada lima NBestPhonemes yang sesuai dengan jumlah fonem lisan yang diminta.
  • Dalam Phonemes, fonem lisan yang paling mungkin adalah ə alih-alih fonem ɛyang diharapkan. Fonem ɛ yang diharapkan hanya menerima skor keyakinan 47. Potensi kecocokan lainnya mendapatkan skor keyakinan 52, 17, dan 2.
{
    "Id": "bbb42ea51bdb46d19a1d685e635fe173",
    "RecognitionStatus": 0,
    "Offset": 7500000,
    "Duration": 13800000,
    "DisplayText": "Hello.",
    "NBest": [
        {
            "Confidence": 0.975003,
            "Lexical": "hello",
            "ITN": "hello",
            "MaskedITN": "hello",
            "Display": "Hello.",
            "PronunciationAssessment": {
                "AccuracyScore": 100,
                "FluencyScore": 100,
                "CompletenessScore": 100,
                "PronScore": 100
            },
            "Words": [
                {
                    "Word": "hello",
                    "Offset": 7500000,
                    "Duration": 13800000,
                    "PronunciationAssessment": {
                        "AccuracyScore": 99.0,
                        "ErrorType": "None"
                    },
                    "Syllables": [
                        {
                            "Syllable": "hɛ",
                            "PronunciationAssessment": {
                                "AccuracyScore": 91.0
                            },
                            "Offset": 7500000,
                            "Duration": 4100000
                        },
                        {
                            "Syllable": "loʊ",
                            "PronunciationAssessment": {
                                "AccuracyScore": 100.0
                            },
                            "Offset": 11700000,
                            "Duration": 9600000
                        }
                    ],
                    "Phonemes": [
                        {
                            "Phoneme": "h",
                            "PronunciationAssessment": {
                                "AccuracyScore": 98.0,
                                "NBestPhonemes": [
                                    {
                                        "Phoneme": "h",
                                        "Score": 100.0
                                    },
                                    {
                                        "Phoneme": "oʊ",
                                        "Score": 52.0
                                    },
                                    {
                                        "Phoneme": "ə",
                                        "Score": 35.0
                                    },
                                    {
                                        "Phoneme": "k",
                                        "Score": 23.0
                                    },
                                    {
                                        "Phoneme": "æ",
                                        "Score": 20.0
                                    }
                                ]
                            },
                            "Offset": 7500000,
                            "Duration": 3500000
                        },
                        {
                            "Phoneme": "ɛ",
                            "PronunciationAssessment": {
                                "AccuracyScore": 47.0,
                                "NBestPhonemes": [
                                    {
                                        "Phoneme": "ə",
                                        "Score": 100.0
                                    },
                                    {
                                        "Phoneme": "l",
                                        "Score": 52.0
                                    },
                                    {
                                        "Phoneme": "ɛ",
                                        "Score": 47.0
                                    },
                                    {
                                        "Phoneme": "h",
                                        "Score": 17.0
                                    },
                                    {
                                        "Phoneme": "æ",
                                        "Score": 2.0
                                    }
                                ]
                            },
                            "Offset": 11100000,
                            "Duration": 500000
                        },
                        {
                            "Phoneme": "l",
                            "PronunciationAssessment": {
                                "AccuracyScore": 100.0,
                                "NBestPhonemes": [
                                    {
                                        "Phoneme": "l",
                                        "Score": 100.0
                                    },
                                    {
                                        "Phoneme": "oʊ",
                                        "Score": 46.0
                                    },
                                    {
                                        "Phoneme": "ə",
                                        "Score": 5.0
                                    },
                                    {
                                        "Phoneme": "ɛ",
                                        "Score": 3.0
                                    },
                                    {
                                        "Phoneme": "u",
                                        "Score": 1.0
                                    }
                                ]
                            },
                            "Offset": 11700000,
                            "Duration": 1100000
                        },
                        {
                            "Phoneme": "oʊ",
                            "PronunciationAssessment": {
                                "AccuracyScore": 100.0,
                                "NBestPhonemes": [
                                    {
                                        "Phoneme": "oʊ",
                                        "Score": 100.0
                                    },
                                    {
                                        "Phoneme": "d",
                                        "Score": 29.0
                                    },
                                    {
                                        "Phoneme": "t",
                                        "Score": 24.0
                                    },
                                    {
                                        "Phoneme": "n",
                                        "Score": 22.0
                                    },
                                    {
                                        "Phoneme": "l",
                                        "Score": 18.0
                                    }
                                ]
                            },
                            "Offset": 12900000,
                            "Duration": 8400000
                        }
                    ]
                }
            ]
        }
    ]
}

Anda bisa mendapatkan skor penilaian pengucapan untuk:

  • Teks lengkap
  • Kata
  • Grup suku kata
  • Telepon mes di Format SAPI atau IPA

Fitur yang didukung per lokal

Tabel berikut ini meringkas fitur mana yang didukung lokal. Untuk menentukan selengkapnya, lihat bagian berikut ini.

alfabet Telepon me IPA SAPI
nama Telepon me en-US en-US, zh-CN
Grup suku kata en-US en-US
Fonem lisan en-US en-US

Grup suku kata

Penilaian pengucapan dapat memberikan hasil penilaian tingkat suku kata. Sebuah kata biasanya diucapkan suku kata oleh suku kata daripada fonem melalui fonem. Pengelompokan dalam suku kata lebih mudah terbayangkan dan selaras dengan kebiasaan berbicara.

Penilaian pengucapan mendukung grup suku kata hanya di en-US dengan IPA dan dengan SAPI.

Tabel berikut membandingkan contoh fonem dengan suku kata yang sesuai.

Contoh kata Fonem Suku kata
technological teknələdʒɪkl tek·nə·lɑ·dʒɪkl
halo hɛloʊ hɛ·loʊ
luck lʌk lʌk
photosynthesis foʊtəsɪnθəsɪs foʊ·tə·sɪn·θə·sɪs

Untuk meminta hasil tingkat suku kata bersama dengan fonem, atur parameter konfigurasi granularitas ke Phoneme.

Format alfabet fonem

Penilaian pengucapan mendukung nama fonem dengan en-US IPA dan di dan en-USzh-CN dengan SAPI.

Untuk lokal yang mendukung nama fonem, nama fonem disediakan bersama dengan skor. nama Telepon me membantu mengidentifikasi fonem mana yang diucapkan secara akurat atau tidak akurat. Untuk lokal lain, Anda hanya bisa mendapatkan skor fonem.

Tabel berikut membandingkan contoh fonem SAPI dengan fonem IPA yang sesuai.

Contoh kata Fonem SAPI Fonem IPA
halo h eh l ow h ɛ l oʊ
luck l ah k l ʌ k
photosynthesis f ow t ax s ih n th ax s ih s f oʊ t ə s ɪ n θ ə s ɪ s

Untuk meminta fonem IPA, atur alfabet fonem ke IPA. Jika Anda tidak menentukan alfabet, fonem dalam format SAPI secara default.

pronunciationAssessmentConfig.PhonemeAlphabet = "IPA";
auto pronunciationAssessmentConfig = PronunciationAssessmentConfig::CreateFromJson("{\"referenceText\":\"good morning\",\"gradingSystem\":\"HundredMark\",\"granularity\":\"Phoneme\",\"phonemeAlphabet\":\"IPA\"}");
PronunciationAssessmentConfig pronunciationAssessmentConfig = PronunciationAssessmentConfig.fromJson("{\"referenceText\":\"good morning\",\"gradingSystem\":\"HundredMark\",\"granularity\":\"Phoneme\",\"phonemeAlphabet\":\"IPA\"}");
pronunciation_assessment_config = speechsdk.PronunciationAssessmentConfig(json_string="{\"referenceText\":\"good morning\",\"gradingSystem\":\"HundredMark\",\"granularity\":\"Phoneme\",\"phonemeAlphabet\":\"IPA\"}")
var pronunciationAssessmentConfig = SpeechSDK.PronunciationAssessmentConfig.fromJSON("{\"referenceText\":\"good morning\",\"gradingSystem\":\"HundredMark\",\"granularity\":\"Phoneme\",\"phonemeAlphabet\":\"IPA\"}");
pronunciationAssessmentConfig.phonemeAlphabet = @"IPA";
pronunciationAssessmentConfig?.phonemeAlphabet = "IPA"

Menilai fonem lisan

Dengan fonem lisan, Anda bisa mendapatkan skor keyakinan yang menunjukkan seberapa besar kemungkinan fonem lisan cocok dengan fonem yang diharapkan.

Penilaian pengucapan mendukung fonem lisan dengan en-US IPA dan dengan SAPI.

Misalnya, untuk mendapatkan suara lisan lengkap untuk kata Hello, Anda dapat menggabungkan fonem lisan pertama untuk setiap fonem yang diharapkan dengan skor keyakinan tertinggi. Dalam hasil penilaian berikut, ketika Anda mengucapkan kata hello, fonem IPA yang diharapkan adalah h ɛ l oʊ. Namun, fonem lisan yang sebenarnya adalah h ə l oʊ. Anda memiliki lima kandidat yang mungkin untuk setiap fonem yang diharapkan dalam contoh ini. Hasil penilaian menunjukkan bahwa fonem lisan yang paling mungkin bukan ə fonem ɛyang diharapkan . Fonem ɛ yang diharapkan hanya menerima skor keyakinan 47. Potensi kecocokan lainnya mendapatkan skor keyakinan 52, 17, dan 2.

{
    "Id": "bbb42ea51bdb46d19a1d685e635fe173",
    "RecognitionStatus": 0,
    "Offset": 7500000,
    "Duration": 13800000,
    "DisplayText": "Hello.",
    "NBest": [
        {
            "Confidence": 0.975003,
            "Lexical": "hello",
            "ITN": "hello",
            "MaskedITN": "hello",
            "Display": "Hello.",
            "PronunciationAssessment": {
                "AccuracyScore": 100,
                "FluencyScore": 100,
                "CompletenessScore": 100,
                "PronScore": 100
            },
            "Words": [
                {
                    "Word": "hello",
                    "Offset": 7500000,
                    "Duration": 13800000,
                    "PronunciationAssessment": {
                        "AccuracyScore": 99.0,
                        "ErrorType": "None"
                    },
                    "Syllables": [
                        {
                            "Syllable": "hɛ",
                            "PronunciationAssessment": {
                                "AccuracyScore": 91.0
                            },
                            "Offset": 7500000,
                            "Duration": 4100000
                        },
                        {
                            "Syllable": "loʊ",
                            "PronunciationAssessment": {
                                "AccuracyScore": 100.0
                            },
                            "Offset": 11700000,
                            "Duration": 9600000
                        }
                    ],
                    "Phonemes": [
                        {
                            "Phoneme": "h",
                            "PronunciationAssessment": {
                                "AccuracyScore": 98.0,
                                "NBestPhonemes": [
                                    {
                                        "Phoneme": "h",
                                        "Score": 100.0
                                    },
                                    {
                                        "Phoneme": "oʊ",
                                        "Score": 52.0
                                    },
                                    {
                                        "Phoneme": "ə",
                                        "Score": 35.0
                                    },
                                    {
                                        "Phoneme": "k",
                                        "Score": 23.0
                                    },
                                    {
                                        "Phoneme": "æ",
                                        "Score": 20.0
                                    }
                                ]
                            },
                            "Offset": 7500000,
                            "Duration": 3500000
                        },
                        {
                            "Phoneme": "ɛ",
                            "PronunciationAssessment": {
                                "AccuracyScore": 47.0,
                                "NBestPhonemes": [
                                    {
                                        "Phoneme": "ə",
                                        "Score": 100.0
                                    },
                                    {
                                        "Phoneme": "l",
                                        "Score": 52.0
                                    },
                                    {
                                        "Phoneme": "ɛ",
                                        "Score": 47.0
                                    },
                                    {
                                        "Phoneme": "h",
                                        "Score": 17.0
                                    },
                                    {
                                        "Phoneme": "æ",
                                        "Score": 2.0
                                    }
                                ]
                            },
                            "Offset": 11100000,
                            "Duration": 500000
                        },
                        {
                            "Phoneme": "l",
                            "PronunciationAssessment": {
                                "AccuracyScore": 100.0,
                                "NBestPhonemes": [
                                    {
                                        "Phoneme": "l",
                                        "Score": 100.0
                                    },
                                    {
                                        "Phoneme": "oʊ",
                                        "Score": 46.0
                                    },
                                    {
                                        "Phoneme": "ə",
                                        "Score": 5.0
                                    },
                                    {
                                        "Phoneme": "ɛ",
                                        "Score": 3.0
                                    },
                                    {
                                        "Phoneme": "u",
                                        "Score": 1.0
                                    }
                                ]
                            },
                            "Offset": 11700000,
                            "Duration": 1100000
                        },
                        {
                            "Phoneme": "oʊ",
                            "PronunciationAssessment": {
                                "AccuracyScore": 100.0,
                                "NBestPhonemes": [
                                    {
                                        "Phoneme": "oʊ",
                                        "Score": 100.0
                                    },
                                    {
                                        "Phoneme": "d",
                                        "Score": 29.0
                                    },
                                    {
                                        "Phoneme": "t",
                                        "Score": 24.0
                                    },
                                    {
                                        "Phoneme": "n",
                                        "Score": 22.0
                                    },
                                    {
                                        "Phoneme": "l",
                                        "Score": 18.0
                                    }
                                ]
                            },
                            "Offset": 12900000,
                            "Duration": 8400000
                        }
                    ]
                }
            ]
        }
    ]
}

Untuk menunjukkan apakah, dan berapa banyak potensi fonem lisan untuk mendapatkan skor keyakinan, atur parameter NBestPhonemeCount ke nilai bilangan bulat seperti 5.

pronunciationAssessmentConfig.NBestPhonemeCount = 5;
auto pronunciationAssessmentConfig = PronunciationAssessmentConfig::CreateFromJson("{\"referenceText\":\"good morning\",\"gradingSystem\":\"HundredMark\",\"granularity\":\"Phoneme\",\"phonemeAlphabet\":\"IPA\",\"nBestPhonemeCount\":5}");
PronunciationAssessmentConfig pronunciationAssessmentConfig = PronunciationAssessmentConfig.fromJson("{\"referenceText\":\"good morning\",\"gradingSystem\":\"HundredMark\",\"granularity\":\"Phoneme\",\"phonemeAlphabet\":\"IPA\",\"nBestPhonemeCount\":5}");
pronunciation_assessment_config = speechsdk.PronunciationAssessmentConfig(json_string="{\"referenceText\":\"good morning\",\"gradingSystem\":\"HundredMark\",\"granularity\":\"Phoneme\",\"phonemeAlphabet\":\"IPA\",\"nBestPhonemeCount\":5}")
var pronunciationAssessmentConfig = SpeechSDK.PronunciationAssessmentConfig.fromJSON("{\"referenceText\":\"good morning\",\"gradingSystem\":\"HundredMark\",\"granularity\":\"Phoneme\",\"phonemeAlphabet\":\"IPA\",\"nBestPhonemeCount\":5}");
pronunciationAssessmentConfig.nbestPhonemeCount = 5;
pronunciationAssessmentConfig?.nbestPhonemeCount = 5