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.
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.
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.
SpeechRecognizer
iç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 bkz . örnek kod.
İ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 Word puanı gösteren veya FullText puanı 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 iseTrue ErrorType , 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 True ayarlayınEnableMiscue . Tablonun altındaki 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.
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))
{
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);
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);
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);
},
{});
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)
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];
[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)
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üzeyim, 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ı. PronScore , ve CompletenessScore ağırlıklarından AccuracyScore FluencyScore toplanı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 , UnexpectedBreak MissingBreak ve Monotone hataları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
, GrammarScore
ve 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üzeyim, 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ı. Bu değer, , FluencyScore ve CompletenessScore ağırlıklarından AccuracyScore toplanı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 , MissingBreak ve 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 Intonation dahil olmak üzere Break sözcük düzeyiyle ilgili geri bildirim. |
Break |
|
ErrorTypes |
ve MissingBreak dahil 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 ErrorTypes varsa, 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 heceninloʊ
başlangıç uzaklığı (11700000) üçüncü foneml
olan 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ındaOffset
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çinde
Phonemes
, 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ı
- TelefonSAPI veya IPA biçimi
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.
alfabeyi Telefon | IPA | SAPI |
---|---|---|
Telefon m 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 ms | 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 Phoneme
ayarlayın.
alfabe biçimini Telefon
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. Telefon 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 Telefon ms | 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 IPA
ayarlayı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 Hello
tam 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ü hello
sö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 5
bir 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
İlgili içerik
- Kalite karşılaştırması hakkında bilgi edinin.
- Speech Studio'da söyleniş değerlendirmeyi deneyin.
- Dağıtımı kolay bir Söyleniş Değerlendirmesi tanıtımına göz atın.
- Söyleniş değerlendirmesinin video tanıtımını izleyin.