تقييم النطق
يقوم تقييم النطق بتقييم نطق الكلام ويعطي المتحدثين ملاحظات حول دقة وطلاقة الصوت المنطوق. مع تقييم النطق، يمكن لمتعلمي اللغة الممارسة، والحصول على ردود فعل فورية، وتحسين النطق بحيث يمكنهم التحدث والتواجد بثقة. يمكن للمعلمين استخدام القدرة على تقييم نطق عدة متحدثين في الوقت الفعلي. يتم الإعلان عن تقييم النطق متوفر بشكل عام باللغة الإنجليزية الأمريكية، بينما تتوفر لغات أخرى في المعاينة .
في هذه المقالة، ستتعلم كيفية إعداد PronunciationAssessmentConfig واسترداد PronunciationAssessmentResult باستخدام Speech SDK.
تقييم النطق باستخدام Speech SDK
توضح القصاصة البرمجية التالية كيفية إنشاء PronunciationAssessmentConfig، ثم تطبيقه على SpeechRecognizer.
var pronunciationAssessmentConfig = new PronunciationAssessmentConfig(
"reference text", GradingSystem.HundredMark, Granularity.Phoneme);
using (var recognizer = new SpeechRecognizer(
speechConfig,
audioConfig))
{
// apply the pronunciation assessment configuration to the speech recognizer
pronunciationAssessmentConfig.ApplyTo(recognizer);
var speechRecognitionResult = await recognizer.RecognizeOnceAsync();
var pronunciationAssessmentResult =
PronunciationAssessmentResult.FromResult(speechRecognitionResult);
var pronunciationScore = pronunciationAssessmentResult.PronunciationScore;
}
auto pronunciationAssessmentConfig =
PronunciationAssessmentConfig::Create("reference text",
PronunciationAssessmentGradingSystem::HundredMark,
PronunciationAssessmentGranularity::Phoneme);
auto recognizer = SpeechRecognizer::FromConfig(
speechConfig,
audioConfig);
// apply the pronunciation assessment configuration to the speech recognizer
pronunciationAssessmentConfig->ApplyTo(recognizer);
speechRecognitionResult = recognizer->RecognizeOnceAsync().get();
auto pronunciationAssessmentResult =
PronunciationAssessmentResult::FromResult(speechRecognitionResult);
auto pronunciationScore = pronunciationAssessmentResult->PronunciationScore;
PronunciationAssessmentConfig pronunciationAssessmentConfig =
new PronunciationAssessmentConfig("reference text",
PronunciationAssessmentGradingSystem.HundredMark,
PronunciationAssessmentGranularity.Phoneme);
SpeechRecognizer recognizer = new SpeechRecognizer(
speechConfig,
audioConfig);
// apply the pronunciation assessment configuration to the speech recognizer
pronunciationAssessmentConfig.applyTo(recognizer);
Future<SpeechRecognitionResult> future = recognizer.recognizeOnceAsync();
SpeechRecognitionResult result = future.get(30, TimeUnit.SECONDS);
PronunciationAssessmentResult pronunciationAssessmentResult =
PronunciationAssessmentResult.fromResult(result);
Double pronunciationScore = pronunciationAssessmentResult.getPronunciationScore();
recognizer.close();
speechConfig.close();
audioConfig.close();
pronunciationAssessmentConfig.close();
result.close();
pronunciation_assessment_config = \
speechsdk.PronunciationAssessmentConfig(reference_text='reference text',
grading_system=speechsdk.PronunciationAssessmentGradingSystem.HundredMark,
granularity=speechsdk.PronunciationAssessmentGranularity.Phoneme)
speech_recognizer = speechsdk.SpeechRecognizer(
speech_config=speech_config, \
audio_config=audio_config)
# apply the pronunciation assessment configuration to the speech recognizer
pronunciation_assessment_config.apply_to(speech_recognizer)
result = speech_recognizer.recognize_once()
pronunciation_assessment_result = speechsdk.PronunciationAssessmentResult(result)
pronunciation_score = pronunciation_assessment_result.pronunciation_score
var pronunciationAssessmentConfig = new SpeechSDK.PronunciationAssessmentConfig("reference text",
PronunciationAssessmentGradingSystem.HundredMark,
PronunciationAssessmentGranularity.Word, true);
var speechRecognizer = SpeechSDK.SpeechRecognizer.FromConfig(speechConfig, audioConfig);
// apply the pronunciation assessment configuration to the speech recognizer
pronunciationAssessmentConfig.applyTo(speechRecognizer);
speechRecognizer.recognizeOnceAsync((result: SpeechSDK.SpeechRecognitionResult) => {
var pronunciationAssessmentResult = SpeechSDK.PronunciationAssessmentResult.fromResult(result);
var pronunciationScore = pronunciationAssessmentResult.pronunciationScore;
var wordLevelResult = pronunciationAssessmentResult.detailResult.Words;
},
{});
SPXPronunciationAssessmentConfiguration* pronunciationAssessmentConfig =
[[SPXPronunciationAssessmentConfiguration alloc]init:@"reference text"
gradingSystem:SPXPronunciationAssessmentGradingSystem_HundredMark
granularity:SPXPronunciationAssessmentGranularity_Phoneme];
SPXSpeechRecognizer* speechRecognizer = \
[[SPXSpeechRecognizer alloc] initWithSpeechConfiguration:speechConfig
audioConfiguration:audioConfig];
// apply the pronunciation assessment configuration to the speech recognizer
[pronunciationAssessmentConfig applyToRecognizer:speechRecognizer];
SPXSpeechRecognitionResult *result = [speechRecognizer recognizeOnce];
SPXPronunciationAssessmentResult* pronunciationAssessmentResult = [[SPXPronunciationAssessmentResult alloc] init:result];
double pronunciationScore = pronunciationAssessmentResult.pronunciationScore;
معلمات التكوين
يسرد هذا الجدول معلمات التكوين لتقييم النطق.
| المعلمة | الوصف | مطلوب؟ |
|---|---|---|
ReferenceText |
النص الذي سيتم تقييم النطق مقابله. | مطلوب |
GradingSystem |
نظام النقاط لمعايرة النقاط. FivePoint يعطي النظام درجة نقطة عائمة من 0 إلى 5، ويعطي HundredMark درجة نقطة عائمة من 0 إلى 100. افتراضي: FivePoint. |
اختياري |
Granularity |
دقة التقييم. القيم المقبولة هي Phoneme، والتي تعرض النتيجة على مستوى النص الكامل والكلمة والهاتف، Syllableوالتي تعرض النتيجة على النص الكامل والكلمة ومستوى المقطع، Wordوالتي تعرض النتيجة على مستوى النص الكامل والكلمة، FullTextوالتي تعرض النتيجة على مستوى النص الكامل فقط. افتراضي: Phoneme. |
اختياري |
EnableMiscue |
تمكين الحساب الخاطئ عند مقارنة الكلمات النطقية بالنص المرجعي. إذا كانت هذه القيمة هي True، ErrorType يمكن تعيين قيمة النتيجة إلى أو Insertion استنادا إلى Omission المقارنة. القيم المقبولة هي False و True. افتراضي: False. |
اختياري |
ScenarioId |
GUID يشير إلى نظام نقطة مخصص. | اختياري |
معلمات النتيجة
يسرد هذا الجدول معلمات نتائج تقييم النطق.
| المعلمة | الوصف |
|---|---|
AccuracyScore |
دقة نطق الكلام. تشير الدقة إلى مدى تطابق السماعات مع نطق المتحدث الأصلي. يتم تجميع درجات دقة النص المقطعي والكلمة والنص الكامل من درجة الدقة على مستوى الهاتف. |
FluencyScore |
الطلاقة في الكلام المحدد. تشير الطلاقة إلى مدى تطابق الكلام مع استخدام المتحدث الأصلي للفواصل الصامتة بين الكلمات. |
CompletenessScore |
اكتمال الكلام، يتم حسابه حسب نسبة الكلمات النطقية إلى نص مرجع الإدخال. |
PronScore |
النتيجة الإجمالية التي تشير إلى جودة النطق للكلام المحدد. PronScore يتم تجميعها من AccuracyScore، FluencyScoreو، و CompletenessScore مع الوزن. |
ErrorType |
تشير هذه القيمة إلى ما إذا كانت الكلمة محذفة أو مدرجة أو خاطئة، مقارنة ب ReferenceText. القيم المحتملة هي Noneو InsertionOmissionو و.Mispronunciation |
نماذج الاستجابات
ينتج عن تقييم النطق النموذجي JSON:
{
"RecognitionStatus": "Success",
"Offset": "400000",
"Duration": "11000000",
"NBest": [
{
"Confidence": "0.87",
"Lexical": "good morning",
"ITN" : "good morning",
"MaskedITN" : "good morning",
"Display" : "Good morning.",
"PronunciationAssessment" : {
"PronScore" : 84.4,
"AccuracyScore" : 100.0,
"FluencyScore" : 74.0,
"CompletenessScore" : 100.0,
},
"Words": [
{
"Word" : "good",
"Offset" : 500000,
"Duration" : 2700000,
"PronunciationAssessment": {
"AccuracyScore" : 100.0,
"ErrorType" : "None"
},
"Syllables" : [
{
"Syllable" : "ɡʊd",
"Offset" : 500000,
"Duration" : 2700000,
"PronunciationAssessment" : {
"AccuracyScore": 100.0
}
}],
"Phonemes": [
{
"Phoneme" : "ɡ",
"Offset" : 500000,
"Duration": 1200000,
"PronunciationAssessment": {
"AccuracyScore": 100.0
}
},
{
"Phoneme" : "ʊ",
"Offset" : 1800000,
"Duration": 500000,
"PronunciationAssessment": {
"AccuracyScore": 100.0
}
},
{
"Phoneme" : "d",
"Offset" : 2400000,
"Duration": 800000,
"PronunciationAssessment": {
"AccuracyScore": 100.0
}
}]
},
{
"Word" : "morning",
"Offset" : 3300000,
"Duration" : 5500000,
"PronunciationAssessment": {
"AccuracyScore" : 100.0,
"ErrorType" : "None"
},
"Syllables": [
{
"Syllable" : "mɔr",
"Offset" : 3300000,
"Duration": 2300000,
"PronunciationAssessment": {
"AccuracyScore": 100.0
}
},
{
"Syllable" : "nɪŋ",
"Offset" : 5700000,
"Duration": 3100000,
"PronunciationAssessment": {
"AccuracyScore": 100.0
}
}],
"Phonemes": [
... // omitted phonemes
]
}]
}]
}
الخطوات التالية
تعرف على المزيد حول حالات الاستخدام التي تم إصدارها
جرب العرض التوضيحي لتقييم النطق وشاهد الفيديو التعليمي لتقييم النطق.
- راجع نموذج التعليمات البرمجية على GitHub لتقييم النطق.
- راجع نموذج التعليمات البرمجية على GitHub لتقييم النطق.
- راجع نموذج التعليمات البرمجية على GitHub لتقييم النطق.
- راجع نموذج التعليمات البرمجية على GitHub لتقييم النطق.
- راجع نموذج التعليمات البرمجية على GitHub لتقييم النطق.