Söyleniş değerlendirmeyi kullanma

Bu makalede, Konuşma SDK'sı aracılığıyla konuşmayı metne dönüştürme ile söylenişi değerlendirmeyi öğreneceksiniz. Söyleniş değerlendirmesi konuşmanın söylenişini değerlendirir ve konuşmacılara konuşma sesinin doğruluğu ve akıcılığı ile ilgili geri bildirim verir.

Not

Söyleniş değerlendirmesi, tutarlı ve doğru telaffuz değerlendirmesini sağlamak için, standart konuşmadan metin modeline kadar konuşmadan metne modelin belirli bir sürümünü kullanır.

Akış modunda söyleniş değerlendirmesini kullanma

Söyleniş değerlendirmesi kesintisiz akış modunu destekler. Konuşma SDK'sı aracılığıyla kayıt süresi sınırsız olabilir. Kaydı durdurmadığınız sürece değerlendirme işlemi tamamlanmaz ve değerlendirmeyi rahatça duraklatabilir ve sürdürebilirsiniz.

Söyleniş değerlendirmesinin kullanılabilirliği hakkında bilgi için bkz . Desteklenen diller ve kullanılabilir bölgeler.

Temel olarak, söyleniş değerlendirmesinin kullanımı kullandıkça öde veya taahhüt katmanı fiyatlandırması için konuşmayı metne dönüştürmeyle aynıdır. Konuşmayı metne dönüştürme için bir taahhüt katmanı satın alırsanız söyleniş değerlendirmesi için harcama, taahhüdü karşılamaya gider. Daha fazla bilgi için bkz. Fiyatlandırma.

Kendi uygulamanızda akış modunda Söyleniş Değerlendirmesi'ni kullanma hakkında bilgi için bkz . örnek kod.

Kendi uygulamanızda akış modunda Söyleniş Değerlendirmesi'ni kullanma hakkında bilgi için bkz . örnek kod.

Kendi uygulamanızda akış modunda Söyleniş Değerlendirmesi'ni kullanma hakkında bilgi için bkz . örnek kod.

Kendi uygulamanızda akış modunda Söyleniş Değerlendirmesi'ni kullanma hakkında bilgi için bkz . örnek kod.

Kendi uygulamanızda akış modunda Söyleniş Değerlendirmesi'ni kullanma hakkında bilgi için bkz . örnek kod.

Kendi uygulamanızda akış modunda Söyleniş Değerlendirmesi'ni kullanma hakkında bilgi için bkz . örnek kod.

Kendi uygulamanızda akış modunda Söyleniş Değerlendirmesi'ni kullanma hakkında bilgi için bkz . örnek kod.

Sürekli tanıma

Ses dosyanız 30 saniyeyi aşarsa, işleme için sürekli modu kullanın. Sürekli mod için örnek kod GitHub'da işlevinin PronunciationAssessmentContinuousWithFilealtında bulunabilir.

Ses dosyanız 30 saniyeyi aşarsa, işleme için sürekli modu kullanın.

Ses dosyanız 30 saniyeyi aşarsa, işleme için sürekli modu kullanın. Sürekli mod için örnek kod GitHub'da işlevinin pronunciationAssessmentContinuousWithFilealtında bulunabilir.

Ses dosyanız 30 saniyeyi aşarsa, işleme için sürekli modu kullanın. Sürekli mod için örnek kod GitHub'da işlevinin pronunciation_assessment_continuous_from_filealtında bulunabilir.

Ses dosyanız 30 saniyeyi aşarsa, işleme için sürekli modu kullanın. Sürekli mod için örnek kod GitHub'da bulunabilir.

Ses dosyanız 30 saniyeyi aşarsa, işleme için sürekli modu kullanın. Sürekli mod için örnek kod GitHub'da işlevinin pronunciationAssessFromFilealtında bulunabilir.

Ses dosyanız 30 saniyeyi aşarsa, işleme için sürekli modu kullanın. Sürekli mod için örnek kod GitHub'da işlevinin continuousPronunciationAssessmentaltında bulunabilir.

Yapılandırma parametrelerini ayarlama

Not

Söyleniş değerlendirmesi Go için Konuşma SDK'sı ile kullanılamaz. Bu kılavuzdaki kavramlar hakkında bilgi edinebilirsiniz. Çözümünüz için başka bir programlama dili seçin.

SpeechRecognizeriçinde, öğrenebileceğiniz dili belirtebilir veya söylenişi geliştirme alıştırması yapabilirsiniz. Varsayılan yerel ayar şeklindedir en-US. Kendi uygulamanızda söyleniş değerlendirmesi için öğrenme dilini belirtmeyi öğrenmek için aşağıdaki örnek kodu kullanabilirsiniz.

var recognizer = new SpeechRecognizer(speechConfig, "en-US", audioConfig);
auto recognizer = SpeechRecognizer::FromConfig(speechConfig, "en-US", audioConfig);
SpeechRecognizer recognizer = new SpeechRecognizer(speechConfig, "en-US", audioConfig);
speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, language="en-US", audio_config=audio_config)
speechConfig.speechRecognitionLanguage = "en-US";
SPXSpeechRecognizer* recognizer = [[SPXSpeechRecognizer alloc] initWithSpeechConfiguration:speechConfig language:@"en-US" audioConfiguration:audioConfig];
let recognizer = try! SPXSpeechRecognizer(speechConfiguration: speechConfig, language: "en-US", audioConfiguration: audioConfig)

İpucu

Birden çok yerel ayarı olan bir dil için hangi yerel ayarın ayarlanacağından emin değilseniz, her yerel ayarı ayrı ayrı deneyin. Örneğin, İspanyolca için ve es-MX'yi deneyines-ES. Senaryonuz için hangi yerel ayarın daha yüksek puanlara sahip olduğunu belirleyin.

Bir nesne oluşturmanız PronunciationAssessmentConfig gerekir. prosody ve EnableContentAssessmentWithTopic içerik değerlendirmesini etkinleştirmek için ve ayarlayabilirsinizEnableProsodyAssessment. Daha fazla bilgi için bkz . yapılandırma yöntemleri.

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")

Bu tabloda, söyleniş değerlendirmesi için bazı temel yapılandırma parametreleri listelenmektedir.

Parametre Açıklama
ReferenceText Söylenişin değerlendirıldığı metin.

ReferenceText parametresi isteğe bağlıdır. Okuma dili öğrenme senaryosu için betikli değerlendirme çalıştırmak istiyorsanız başvuru metnini ayarlayın. Açıklanmamış bir değerlendirme çalıştırmak istiyorsanız başvuru metnini ayarlamayın.

Betikli ve açıklanmamış değerlendirme arasındaki fiyatlandırma farkları için bkz . Fiyatlandırma.
GradingSystem Puan kalibrasyonu için puan sistemi. FivePoint 0-5 kayan nokta puanı verir. HundredMark 0-100 kayan nokta puanı verir. Varsayılan: FivePoint.
Granularity En düşük değerlendirme ayrıntı düzeyini belirler. En düşük değerden büyük veya buna eşit düzeyler için puanları döndürür. Kabul edilen değerler Phoneme, tam metin, sözcük, hece ve foneme düzeyinde puanı gösteren , tam metin ve sözcük düzeyinde Wordpuanı gösteren veya FullTextpuanı yalnızca tam metin düzeyinde gösteren değerleridir. Sağlanan tam başvuru metni bir sözcük, tümce veya paragraf olabilir. Giriş başvuru metninize bağlıdır. Varsayılan: Phoneme.
EnableMiscue Telaffuz edilen sözcükler başvuru metniyle karşılaştırıldığında yanlış hesaplamayı etkinleştirir. Yanlış sorunun etkinleştirilmesi isteğe bağlıdır. Bu değer iseTrueErrorType, sonuç değeri olarak veya Insertion karşılaştırmaya göre ayarlanabilirOmission. Değerler ve TrueşeklindedirFalse. Varsayılan: False. Yanlış hesaplamayı etkinleştirmek için değerini olarak TrueayarlayınEnableMiscue. Tablonun üzerindeki kod parçacığına başvurabilirsiniz.
ScenarioId Özelleştirilmiş bir nokta sistemi için GUID.

Yapılandırma yöntemleri

Bu tabloda, nesne için PronunciationAssessmentConfig ayarlayabileceğiniz isteğe bağlı yöntemlerden bazıları listelenir.

Not

İçerik ve prosody değerlendirmeleri yalnızca en-US yerel ayarında kullanılabilir.

İçeriği ve prosody değerlendirmelerini keşfetmek için SDK 1.35.0 veya sonraki bir sürüme yükseltin.

Konu parametresi için uzunluk sınırı yoktur.

Metot Açıklama
EnableProsodyAssessment Telaffuz değerlendirmeniz için prosody değerlendirmesini etkinleştirir. Bu özellik stres, tonlama, konuşma hızı ve ritim gibi özellikleri değerlendirir. Bu özellik, konuşmanızın doğallığı ve ifade özellikleri hakkında içgörüler sağlar.

Prosody değerlendirmesinin etkinleştirilmesi isteğe bağlıdır. Bu yöntem çağrılırsa sonuç ProsodyScore değeri döndürülür.
EnableContentAssessmentWithTopic İçerik değerlendirmesini etkinleştirir. İçerik değerlendirmesi, konuşma dili öğrenme senaryosu için açıklanmamış değerlendirmenin bir parçasıdır. Açıklama sağlayarak değerlendirmenin konuşulan konuya ilişkin anlayışını geliştirebilirsiniz. Örneğin, C# içinde öğesini çağırın pronunciationAssessmentConfig.EnableContentAssessmentWithTopic("greeting");. Bir konuyu açıklamak için "selamlama" yerine istediğiniz metni koyabilirsiniz. Açıklamanın uzunluk sınırı yoktur ve şu anda yalnızca yerel ayarı destekler en-US .

Söyleniş değerlendirme sonuçlarını alma

Konuşma tanındığında, söyleniş değerlendirme sonuçlarını SDK nesneleri veya JSON dizesi olarak isteyebilirsiniz.

using (var speechRecognizer = new SpeechRecognizer(
    speechConfig,
    audioConfig))
{
    // (Optional) get the session ID
    speechRecognizer.SessionStarted += (s, e) => {
        Console.WriteLine($"SESSION ID: {e.SessionId}");
    };
    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);
}

C++ için Konuşma SDK'sı ile SDK nesneleri kullanılarak Word, hece ve fone sonuçları kullanılamaz. Word, hece ve fone sonuçları yalnızca JSON dizesinde kullanılabilir.

auto speechRecognizer = SpeechRecognizer::FromConfig(
    speechConfig,
    audioConfig);
// (Optional) get the session ID
speechRecognizer->SessionStarted.Connect([](const SessionEventArgs& e) {
    std::cout << "SESSION ID: " << e.SessionId << std::endl;
});
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);

Kendi uygulamanızda söyleniş değerlendirmesi için öğrenme dilini belirtmeyi öğrenmek için bkz . örnek kod.

Android uygulama geliştirme için sözcük, hece ve fone sonuçları, Java için Konuşma SDK'sı ile SDK nesneleri kullanılarak kullanılabilir. Sonuçlar JSON dizesinde de kullanılabilir. Java Runtime (JRE) uygulama geliştirmesi için sözcük, hece ve fone sonuçları yalnızca JSON dizesinde kullanılabilir.

SpeechRecognizer speechRecognizer = new SpeechRecognizer(
    speechConfig,
    audioConfig);
// (Optional) get the session ID
speechRecognizer.sessionStarted.addEventListener((s, e) -> {
    System.out.println("SESSION ID: " + e.getSessionId());
});
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);
// (Optional) get the session ID
speechRecognizer.sessionStarted = (s, e) => {
    console.log(`SESSION ID: ${e.sessionId}`);
};
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);
},
{});

Kendi uygulamanızda söyleniş değerlendirmesi için öğrenme dilini belirtmeyi öğrenmek için bkz . örnek kod.

speech_recognizer = speechsdk.SpeechRecognizer(
        speech_config=speech_config, \
        audio_config=audio_config)
# (Optional) get the session ID
speech_recognizer.session_started.connect(lambda evt: print(f"SESSION ID: {evt.session_id}"))
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)

Kendi uygulamanızda söyleniş değerlendirmesi için öğrenme dilini belirtmeyi öğrenmek için bkz . örnek kod.

SPXSpeechRecognizer* speechRecognizer = \
        [[SPXSpeechRecognizer alloc] initWithSpeechConfiguration:speechConfig
                                              audioConfiguration:audioConfig];
// (Optional) get the session ID
[speechRecognizer addSessionStartedEventHandler: ^ (SPXRecognizer *sender, SPXSessionEventArgs *eventArgs) {
    NSLog(@"SESSION ID: %@", eventArgs.sessionId);
}];
[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];

Kendi uygulamanızda söyleniş değerlendirmesi için öğrenme dilini belirtmeyi öğrenmek için bkz . örnek kod.

let speechRecognizer = try! SPXSpeechRecognizer(speechConfiguration: speechConfig, audioConfiguration: audioConfig)
// (Optional) get the session ID
speechRecognizer.addSessionStartedEventHandler { (sender, evt) in
	print("SESSION ID: \(evt.sessionId)")
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)

Sonuç parametreleri

Betikli veya açıklanmamış değerlendirme kullanıp kullanmadığınıza bağlı olarak, farklı söyleniş değerlendirme sonuçları alabilirsiniz. Betikli değerlendirme, okuma dili öğrenme senaryosuna yöneliktir. Açıklanmamış değerlendirme, konuşma dili öğrenme senaryosuna yöneliktir.

Not

Betikli ve açıklanmamış değerlendirme arasındaki fiyatlandırma farkları için bkz . Fiyatlandırma.

Betikli değerlendirme sonuçları

Bu tabloda betikli değerlendirme veya okuma senaryosu için bazı önemli söyleniş değerlendirme sonuçları listelenmiştir.

Parametre Açıklama Ayrıntı düzeyi
AccuracyScore Konuşmanın söyleniş doğruluğu. Doğruluk, fonemlerin yerel konuşmacının söylenişiyle ne kadar yakın olduğunu gösterir. Hece, sözcük ve tam metin doğruluk puanları foneme düzeyindeki doğruluk puanından toplanır ve değerlendirme hedefleri ile iyileştirilir. Telefon düzeyi,
Hece düzeyi (yalnızca ABD),
Sözcük düzeyi,
Tam Metin düzeyi
FluencyScore Verilen konuşmanın akıcılığı. Akıcılık, konuşmanın yerel konuşmacının sözcükler arasındaki sessiz kesmeleri kullanmasıyla ne kadar yakın eşleşdiğini gösterir. Tam Metin düzeyi
CompletenessScore Telaffuz edilen sözcüklerin giriş başvuru metnine oranıyla hesaplanan konuşmanın eksiksizliği. Tam Metin düzeyi
ProsodyScore Verilen konuşmanın prosody'i. Prosody, stres, intonasyon, konuşma hızı ve ritim dahil olmak üzere verilen konuşmanın ne kadar doğal olduğunu gösterir. Tam Metin düzeyi
PronScore Verilen konuşmanın söyleniş kalitesinin genel puanı. PronScoreve kullanılabilir olması koşuluyla , FluencyScore, CompletenessScore, ve CompletenessScore ProsodyScore ağırlıklarından AccuracyScorehesaplanır.ProsodyScore Bunlardan herhangi biri kullanılamıyorsa bu PronScore puanı dikkate almayacaktır. Tam Metin düzeyi
ErrorType Bu değer, başvuru metniyle karşılaştırıldığında hata türünü gösterir. Seçenekler arasında bir sözcüğün atlanıp atlanmadığı, eklendiği veya kesmeyle yanlış eklenip eklenmediği yer alır. Ayrıca noktalama işaretlerinde eksik bir kesme olduğunu gösterir. Ayrıca bir sözcüğün kötü telaffuz edildiğini mi yoksa monoton olarak mı yükseldiğini, düştüğünü mü yoksa konuşmada düz mü olduğunu gösterir. Olası değerlerNone, bu sözcükte, Omission, Insertion, , Mispronunciation, UnexpectedBreakMissingBreakve Monotonehatalarına yönelik değildir. Hata türü, bir sözcüğün söylenişi AccuracyScore 60'ın altında olduğunda olabilirMispronunciation. Sözcük düzeyi

Açıklanmamış değerlendirme sonuçları

Bu tabloda, açıklanmamış değerlendirme veya konuşma senaryosu için bazı önemli söyleniş değerlendirme sonuçları listelenmiştir.

VocabularyScore, GrammarScoreve TopicScore parametreleri birleştirilmiş içerik değerlendirmesine alınır.

Not

İçerik ve prosody değerlendirmeleri yalnızca en-US yerel ayarında kullanılabilir.

Yanıt parametresi Açıklama Ayrıntı düzeyi
AccuracyScore Konuşmanın söyleniş doğruluğu. Doğruluk, fonemlerin yerel konuşmacının söylenişiyle ne kadar yakın olduğunu gösterir. Hece, sözcük ve tam metin doğruluğu puanları, foneme düzeyinde doğruluk puanından toplanır ve değerlendirme hedefleri ile iyileştirilir. Telefon düzeyi,
Hece düzeyi (yalnızca ABD),
Sözcük düzeyi,
Tam Metin düzeyi
FluencyScore Verilen konuşmanın akıcılığı. Akıcılık, konuşmanın yerel konuşmacının sözcükler arasındaki sessiz kesmeleri kullanmasıyla ne kadar yakın eşleşdiğini gösterir. Tam Metin düzeyi
ProsodyScore Verilen konuşmanın prosody'i. Prosody, stres, intonasyon, konuşma hızı ve ritim dahil olmak üzere verilen konuşmanın ne kadar doğal olduğunu gösterir. Tam Metin düzeyi
VocabularyScore Sözcük temelli kullanımda yetkinlik. Konuşmacının sözcükleri etkili bir şekilde kullanımını ve fikirleri doğru ifade etmek için verilen bağlam içindeki uygunluğunu ve sözcüksel karmaşıklık düzeyini değerlendirir. Tam Metin düzeyi
GrammarScore Dil bilgisi ve çeşitli cümle desenlerini kullanmada doğruluk. Sözcüksel doğruluk, dil bilgisi doğruluğu ve cümle yapılarının çeşitliliği dil bilgisi hatalarını birlikte yükseltir. Tam Metin düzeyi
TopicScore Konuşmacının düşüncelerini ve fikirlerini etkili bir şekilde ifade etme becerisine ve konuyla etkileşim kurma becerisine ilişkin içgörüler sağlayan konuya ilişkin anlayış ve etkileşim düzeyi. Tam Metin düzeyi
PronScore Verilen konuşmanın söyleniş kalitesinin genel puanı. PronScorekullanılabilir olması koşuluyla ProsodyScore , FluencyScoreve ProsodyScore ağırlıklarından hesaplanırAccuracyScore. Kullanılamıyorsa ProsodyScore bu PronScore puanı dikkate almayacaktır. Tam Metin düzeyi
ErrorType Bir sözcük kötü telaffuz edilir, bir kesmeyle yanlış eklenir veya noktalama işaretlerinde bir kesme eksiktir. Ayrıca söylenişin tekdüze olarak mı yükseldiğini, düştüğünü mü yoksa konuşmada düz mü olduğunu gösterir. Olası değerler None , bu sözcük, Mispronunciation, UnexpectedBreak, MissingBreakve Monotoneüzerinde hiçbir hataya yönelik değildir. Sözcük düzeyi

Aşağıdaki tabloda prosody değerlendirmesi sonuçları daha ayrıntılı olarak açıklanmaktadır:

Alan Açıklama
ProsodyScore Konuşmanın tamamının Prosody puanı.
Feedback ve Intonationdahil olmak üzere Break sözcük düzeyiyle ilgili geri bildirim.
Break
ErrorTypes ve MissingBreakdahil olmak üzere UnexpectedBreak kesmeler ile ilgili hata türleri. Geçerli sürüm kesme hata türünü sağlamaz. Alanlarda UnexpectedBreak – Confidence eşikler ayarlamanız ve MissingBreak – confidence sözcük öncesinde beklenmeyen bir kesme veya eksik kesme olup olmadığına karar vermeniz gerekir.
UnexpectedBreak Sözcük öncesinde beklenmeyen bir kesme olduğunu gösterir.
MissingBreak Sözcük öncesinde eksik bir sonu gösterir.
Thresholds Her iki güvenilirlik puanı için de önerilen eşikler 0,75'tir. Başka bir deyişle değeri 0,75'ten büyükse UnexpectedBreak – Confidence beklenmeyen bir kesme olur. değeri MissingBreak – confidence 0,75'ten büyükse, eksik bir sonu vardır. 0,75, önerdiğimiz bir değer olsa da eşikleri kendi senaryonuza göre ayarlamak daha iyidir. Bu iki kesmede değişken algılama duyarlılığına sahip olmak istiyorsanız ve MissingBreak - Confidence alanlarına farklı eşikler UnexpectedBreak - Confidence atayabilirsiniz.
Intonation Konuşmadaki seslendirmeyi gösterir.
ErrorTypes Şu anda yalnızca Monoton'ı destekleyen tonlamayla ilgili hata türleri. Monotone alanında ErrorTypesvarsa, konuşmanın monoton olduğu algılanır. Tüm konuşmada tek ton algılanır, ancak etiket tüm sözcüklere atanır. Aynı konuşmadaki tüm sözcükler aynı monoton algılama bilgilerini paylaşır.
Monotone Monoton konuşmayı gösterir.
Thresholds (Monotone Confidence) Alanlar Monotone - SyllablePitchDeltaConfidence , kullanıcı tarafından özelleştirilmiş monoton algılama için ayrılmıştır. Sağlanan monoton kararından memnun değilseniz, algılamayı tercihlerinize göre özelleştirmek için bu alanlardaki eşikleri ayarlayın.

JSON sonuç örneği

" Hello" adlı sözcüğün betikli söyleniş değerlendirme sonuçları aşağıdaki örnekte JSON dizesi olarak gösterilmiştir.

  • Fone alfabesi IPA'dır.
  • Heceler, aynı sözcük için fonemlerle birlikte döndürülür.
  • Heceleri karşılık gelen fonemleriyle hizalamak için ve Duration değerlerini kullanabilirsinizOffset. Örneğin, ikinci hecenin loʊ başlangıç uzaklığı (11700000) üçüncü fonem lolan ile hizalanır. Uzaklık, tanınan konuşmanın ses akışında başladığı zamanı temsil eder. Değer 100 nanosaniye cinsinden ölçülür. ve hakkında Offset daha fazla bilgi edinmek için bkz. yanıt özellikleri.Duration
  • İstenen konuşmaların sayısına karşılık gelen beş NBestPhonemes tane vardır.
  • içindePhonemes, en olası konuşulan phonemes yerine beklenen phoneme ɛolduə. Beklenen telefon numarası ɛ yalnızca 47 güvenilirlik puanı aldı. Diğer olası eşleşmeler 52, 17 ve 2 güvenilirlik puanları aldı.
{
    "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
                        }
                    ]
                }
            ]
        }
    ]
}

Şunun için söyleniş değerlendirme puanlarını alabilirsiniz:

  • Tam metin
  • Kelime
  • Hece grupları
  • SAPI veya IPA biçimindeki fonemler

Yerel ayar başına desteklenen özellikler

Aşağıdaki tabloda yerel ayarların desteklediği özellikler özetlenmiştir. Daha fazla belirtim için aşağıdaki bölümlere bakın. Gereken yerel ayarlar desteklenen özellik için aşağıdaki tabloda listelenmiyorsa, daha fazla yardım için bu alım formunu doldurun.

Fone alfabesi IPA SAPI
Telefon adı en-US en-US, zh-CN
Hece grubu en-US en-US
Konuşulan telefon en-US en-US

Hece grupları

Söyleniş değerlendirmesi hece düzeyinde değerlendirme sonuçları sağlayabilir. Bir sözcük genellikle fonele göre hece yerine hece ile telaffuz edilir. Hecelerde gruplandırma daha okunaklıdır ve konuşma alışkanlıklarıyla uyumlu hale gelir.

Söyleniş değerlendirmesi yalnızca en-US IPA ve SAPI ile hece gruplarını destekler.

Aşağıdaki tabloda örnek fonemler ilgili hecelerle karşılaştırılır.

Örnek sözcük Telefon bağlantıları Hece
teknolojik teknələdʒɪkl tek·nə·lɑ·dʒɪkl
merhaba hɛloʊ hɛ·loʊ
şans lʌk lʌk
fotosentez foʊtəsɪnθəsɪs foʊ·tə·sɪn·θə·sɪs

Hece düzeyi sonuçları ve fonemleri istemek için ayrıntı düzeyi yapılandırma parametresini olarak Phonemeayarlayın.

Fone alfabe biçimi

Söyleniş değerlendirmesi, IPA ile en-US zh-CN ve SAPI ile phoneme adını en-US destekler.

Phoneme adını destekleyen yerel ayarlar için, telefon adı puanla birlikte sağlanır. Phoneme adları, hangi fonemlerin doğru veya yanlış telaffuz edildiğini belirlemeye yardımcı olur. Diğer yerel ayarlar için yalnızca phoneme puanını alabilirsiniz.

Aşağıdaki tablo, örnek SAPI fonemlerini ilgili IPA fonemleriyle karşılaştırır.

Örnek sözcük SAPI Fonemleri IPA fonemleri
merhaba h eh l ow h ɛ l oʊ
şans l ah k l ʌ k
fotosentez f ow t ax s ih n th ax s ih s f oʊ t ə s ɪ n θ ə s ɪ s

IPA fonemleri istemek için fone alfabesini olarak IPAayarlayın. Alfabeyi belirtmezseniz, fonemler varsayılan olarak SAPI biçimindedir.

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"

Konuşulan telefon seslerini değerlendirme

Konuşulan telefon sesleriyle, konuşulan telefon seslerinin beklenen telefon sesleriyle eşleşme olasılığını gösteren güvenilirlik puanlarını alabilirsiniz.

Söyleniş değerlendirmesi, IPA ve SAPI ile konuşmaları en-US destekler.

Örneğin, sözcüğünün Hellotam sesli sesini elde etmek için, beklenen her telefon sesi için ilk sesli telefonu en yüksek güvenilirlik puanıyla birleştirebilirsiniz. Aşağıdaki değerlendirme sonucunda, sözcüğünü hellosöylediğinizde beklenen IPA fonemleri olur h ɛ l oʊ. Ancak, gerçek konuşulan fonemler şeklindedir h ə l oʊ. Bu örnekte beklenen her telefon adı için beş olası adayınız vardır. Değerlendirme sonucu, en olası konuşma foneminin beklenen telefon ɛyerine olduğunu ə gösterir. Beklenen telefon numarası ɛ yalnızca 47 güvenilirlik puanı aldı. Diğer olası eşleşmeler 52, 17 ve 2 güvenilirlik puanları aldı.

{
    "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
                        }
                    ]
                }
            ]
        }
    ]
}

Güvenilirlik puanlarının alınıp alınmayacağını ve kaç olası konuşulan foneme olduğunu belirtmek için parametresini NBestPhonemeCount gibi 5bir tamsayı değerine ayarlayın.

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

Söyleniş puanı hesaplaması

Söyleniş puanları, okuma ve konuşma senaryolarına yönelik belirli formüllere göre ağırlık doğruluğu, prosody, akıcılık ve tamlık puanlarıyla hesaplanır.

Doğruluk, prosody, akıcılık ve tamlık puanlarını düşükten yükseğe (her puan varsa) sıralarken ve en düşük puanı s0 ile s3 arasında en yüksek puana gösterirken, söyleniş puanı aşağıdaki gibi hesaplanır:

Okuma senaryosu için:

  • Prosody puanıyla: PronScore = 0,4 * s0 + 0,2 * s1 + 0,2 * s2 + 0,2 * s3
  • Prosody puanı olmadan: PronScore = 0,6 * s0 + 0,2 * s1 + 0,2 * s2

Konuşma senaryosu için (tamlık puanı geçerli değildir):

  • Prosody puanıyla: PronScore = 0,6 * s0 + 0,2 * s1 + 0,2 * s2
  • Prosody puanı olmadan: PronScore = 0,6 * s0 + 0,4 * s1

Bu formül, her puanın önemine göre ağırlıklı bir hesaplama sağlayarak söylenişin kapsamlı bir değerlendirmesini sağlar.