Použití hodnocení výslovnosti

V tomto článku se dozvíte, jak vyhodnotit výslovnost pomocí řeči na text prostřednictvím sady Speech SDK. Posouzení výslovnosti vyhodnocuje výslovnost a dává mluvčím zpětnou vazbu ohledně přesnosti a plynulosti mluveného slova.

Použití hodnocení výslovnosti v režimu streamování

Posouzení výslovnosti podporuje režim nepřerušeného streamování. Doba nahrávání může být neomezená prostřednictvím sady Speech SDK. Pokud nahrávání nezastavíte, proces vyhodnocení se nedokončí a hodnocení můžete pohodlně pozastavit a obnovit.

Informace o dostupnosti hodnocení výslovnosti najdete v podporovaných jazycích a dostupných oblastech.

Jako směrný plán stojí využití hodnocení výslovnosti stejné jako převod řeči na text pro průběžné platby nebo ceny úrovně závazku. Pokud si koupíte úroveň závazku pro převod řeči na text, útrata za vyhodnocení výslovnosti se dostane ke splnění závazku. Další informace najdete na stránce s cenami.

Postup použití hodnocení výslovnosti v režimu streamování ve vlastní aplikaci najdete v ukázkovém kódu.

Postup použití hodnocení výslovnosti v režimu streamování ve vlastní aplikaci najdete v ukázkovém kódu.

Postup použití hodnocení výslovnosti v režimu streamování ve vlastní aplikaci najdete v ukázkovém kódu.

Postup použití hodnocení výslovnosti v režimu streamování ve vlastní aplikaci najdete v ukázkovém kódu.

Postup použití hodnocení výslovnosti v režimu streamování ve vlastní aplikaci najdete v ukázkovém kódu.

Postup použití hodnocení výslovnosti v režimu streamování ve vlastní aplikaci najdete v ukázkovém kódu.

Postup použití hodnocení výslovnosti v režimu streamování ve vlastní aplikaci najdete v ukázkovém kódu.

Nastavení parametrů konfigurace

Poznámka:

Hodnocení výslovnosti není u sady Speech SDK pro Go k dispozici. O konceptech si můžete přečíst v této příručce. Vyberte pro své řešení jiný programovací jazyk.

V poli SpeechRecognizermůžete určit jazyk, který se má naučit, nebo si procvičit zlepšení výslovnosti. Výchozí národní prostředí je en-US. Informace o tom, jak určit jazyk výuky pro hodnocení výslovnosti ve vlastní aplikaci, najdete v ukázkovém kódu.

Tip

Pokud si nejste jistí, které národní prostředí se má nastavit pro jazyk, který má více národních prostředí, zkuste každé národní prostředí samostatně. Například pro španělštinu zkuste es-ES a es-MX. Určete, které národní prostředí je pro váš scénář vyšší.

Musíte vytvořit PronunciationAssessmentConfig objekt. Můžete nastavit EnableProsodyAssessment a EnableContentAssessmentWithTopic povolit prosody a hodnocení obsahu. Další informace naleznete v tématu metody konfigurace.

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

Tato tabulka uvádí některé klíčové parametry konfigurace pro vyhodnocení výslovnosti.

Parametr Popis
ReferenceText Text, proti kterému je výslovnost vyhodnocena.

Parametr ReferenceText je volitelný. Pokud chcete spustit skriptované posouzení pro scénář výuky jazyků pro čtení, nastavte referenční text. Pokud chcete spustit neoznačené hodnocení, nenastavujte referenční text.

Informace o cenových rozdílech mezi skriptovaným a neoznamovaným posouzením najdete v tématu Ceny.
GradingSystem Bodový systém pro kalibraci skóre. FivePoint 0-5 skóre s plovoucí desetinou čárkou. HundredMark 0–100 skóre s plovoucí desetinou čárkou. Výchozí hodnota: FivePoint.
Granularity Určuje nejnižší úroveň členitosti vyhodnocení. Vrátí skóre pro úrovně větší nebo rovno minimální hodnotě. Přijaté hodnoty jsou Phoneme, které zobrazují skóre na úrovni celého textu, slova, slabiky a foonemu, Wordkteré zobrazují skóre na úrovni celého textu a slova, nebo FullText, který zobrazuje skóre pouze na úrovni celého textu. Zadaným úplným referenčním textem může být slovo, věta nebo odstavec. Závisí na vstupním referenčním textu. Výchozí hodnota: Phoneme.
EnableMiscue Povolí nesprávný výpočet, když se výrazná slova porovnávají s referenčním textem. Povolení chybného nastavení je volitelné. Pokud je Truetato hodnota, ErrorType může být výsledná hodnota nastavena Omission na nebo Insertion na základě porovnání. Hodnoty jsou False a True. Výchozí hodnota: False. Chcete-li povolit výpočet chybného nastavení, nastavte EnableMiscue hodnotu True. Můžete se podívat na fragment kódu pod tabulkou.
ScenarioId Identifikátor GUID pro přizpůsobený bodový systém.

Metody konfigurace

Tato tabulka uvádí některé z volitelných metod, které můžete pro PronunciationAssessmentConfig objekt nastavit.

Poznámka:

Hodnocení obsahu a prosody jsou k dispozici pouze v národním prostředí en-US .

Pokud chcete prozkoumat obsah a hodnocení prosody, upgradujte na sadu SDK verze 1.35.0 nebo novější.

metoda Popis
EnableProsodyAssessment Umožňuje vyhodnocení výslovnosti vyhodnocením prosody. Tato funkce posuzuje aspekty, jako je stres, intonace, rychlost mluvení a rytmus. Tato funkce poskytuje přehled o přirozené a výraznosti vaší řeči.

Povolení hodnocení prosody je volitelné. Pokud je volána tato metoda, je vrácena ProsodyScore výsledná hodnota.
EnableContentAssessmentWithTopic Povolí posouzení obsahu. Posouzení obsahu je součástí neoznačeného hodnocení pro scénář výuky jazyků pro mluvený jazyk. Zadáním popisu můžete vylepšit pochopení konkrétního tématu, o kterém se mluví. Například při volání pronunciationAssessmentConfig.EnableContentAssessmentWithTopic("greeting");jazyka C# . "Pozdrav" můžete nahradit požadovaným textem, který popisuje téma. Popis nemá žádný limit délky a aktuálně podporuje en-US pouze národní prostředí.

Získání výsledků hodnocení výslovnosti

Při rozpoznávání řeči můžete požádat o výsledky vyhodnocení výslovnosti jako objekty sady SDK nebo řetězec 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);
}

Výsledky wordu, slabiky a fotemu nejsou dostupné pomocí objektů sady SDK se sadou Speech SDK pro jazyk C++. Výsledky wordu, slabiky a fotemu jsou dostupné jenom v řetězci 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);

Informace o tom, jak určit jazyk výuky pro hodnocení výslovnosti ve vlastní aplikaci, najdete v ukázkovém kódu.

Pro vývoj aplikací pro Android jsou výsledky slov, slabiky a fonetu k dispozici pomocí objektů sady SDK se sadou Speech SDK pro Javu. Výsledky jsou k dispozici také v řetězci JSON. Pro vývoj aplikací java runtime (JRE) jsou výsledky slov, slabiky a foonech k dispozici pouze v řetězci 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);
},
{});

Informace o tom, jak určit jazyk výuky pro hodnocení výslovnosti ve vlastní aplikaci, najdete v ukázkovém kódu.

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)

Informace o tom, jak určit jazyk výuky pro hodnocení výslovnosti ve vlastní aplikaci, najdete v ukázkovém kódu.

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];

Informace o tom, jak určit jazyk výuky pro hodnocení výslovnosti ve vlastní aplikaci, najdete v ukázkovém kódu.

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)

Parametry výsledku

V závislosti na tom, jestli používáte skriptované nebo neoznačené hodnocení, můžete získat různé výsledky hodnocení výslovnosti. Skriptované hodnocení je určené pro scénář výuky jazyků pro čtení. Unscripted assessment is for the speaking language learning scenario.

Poznámka:

Informace o cenových rozdílech mezi skriptovaným a neoznamovaným posouzením najdete v tématu Ceny.

Výsledky posouzení skriptovaných skriptů

Tato tabulka uvádí některé klíčové výsledky vyhodnocení výslovnosti pro skriptované posouzení nebo scénář čtení.

Parametr Popis Členitost
AccuracyScore Přesnost výslovnosti řeči Přesnost udává, jak přesně fonély odpovídají výslovnosti rodilého mluvčího. Skóre přesnosti slabiky, slova a úplného textu se agregují z skóre přesnosti na úrovni foonemu a zpřesní se s cíli posouzení. úroveň Telefon me,
Úroveň slabiky (pouze v USA),
Word level,
Úroveň fulltextu
FluencyScore Plynulost dané řeči. Plynulost označuje, jak přesně řeč odpovídá použití tichých konců mezi slovy rodilého mluvčího. Úroveň fulltextu
CompletenessScore Úplnost řeči vypočítaná poměrem vyslovovaných slov k vstupnímu referenčnímu textu Úroveň fulltextu
ProsodyScore Prosody dané řeči. Prosody označuje, jak přirozený je daná řeč, včetně stresu, intonace, rychlosti mluvení a rytmus. Úroveň fulltextu
PronScore Celkové skóre výslovnosti kvality dané řeči. PronScore se agreguje z AccuracyScore, FluencyScorea CompletenessScore s hmotností. Úroveň fulltextu
ErrorType Tato hodnota označuje typ chyby v porovnání s referenčním textem. Mezi možnosti patří, zda je slovo vynecháno, vloženo nebo nesprávně vloženo s koncem. Označuje také chybějící přerušení interpunkce. Označuje také, zda je slovo špatně vyslovováno, nebo monotonicky rostoucí, padající nebo ploché na promluvě. Možné hodnoty nejsou None pro toto slovoOmissionInsertion, , Mispronunciation, UnexpectedBreak, MissingBreaka Monotone. Typ chyby může být Mispronunciation v případě, že výslovnost AccuracyScore slova je nižší než 60. Úroveň wordu

Neoznačené výsledky hodnocení

Tato tabulka uvádí některé klíčové výsledky vyhodnocení výslovnosti pro neoznačené hodnocení nebo mluvený scénář.

VocabularyScore, GrammarScorea TopicScore parametry se zahrnou do kombinovaného hodnocení obsahu.

Poznámka:

Hodnocení obsahu a prosody jsou k dispozici pouze v národním prostředí en-US .

Parametr odpovědi Popis Členitost
AccuracyScore Přesnost výslovnosti řeči Přesnost udává, jak přesně fonély odpovídají výslovnosti rodilého mluvčího. Slabiky, slova a skóre přesnosti celého textu se agregují z skóre přesnosti na úrovni fomeu a zpřesní se s cíli posouzení. úroveň Telefon me,
Úroveň slabiky (pouze v USA),
Word level,
Úroveň fulltextu
FluencyScore Plynulost dané řeči. Plynulost označuje, jak přesně řeč odpovídá použití tichých konců mezi slovy rodilého mluvčího. Úroveň fulltextu
ProsodyScore Prosody dané řeči. Prosody označuje, jak přirozený je daná řeč, včetně stresu, intonace, rychlosti mluvení a rytmus. Úroveň fulltextu
VocabularyScore Znalost lexikálního použití. Vyhodnocuje efektivní použití slov a jejich vhodnost v daném kontextu za účelem přesného vyjádření myšlenek a úrovně lexikální složitosti. Úroveň fulltextu
GrammarScore Správnost při používání gramatiky a různých vzorů vět Lexikální přesnost, gramatická přesnost a rozmanitost struktur vět společně zvyšují gramatické chyby. Úroveň fulltextu
TopicScore Úroveň porozumění a zapojení s tématem, která poskytuje přehledy o schopnosti mluvčího vyjádřit své myšlenky a nápady efektivně a schopnost zapojit se do tématu. Úroveň fulltextu
PronScore Celkové skóre výslovnosti kvality dané řeči. Tato hodnota je agregována z AccuracyScore, FluencyScorea CompletenessScore s hmotností. Úroveň fulltextu
ErrorType Slovo je špatně vyslovováno, nesprávně vloženo s koncem nebo chybí konec v interpunkci. Označuje také, zda je výslovnost monotonicky rostoucí, padající nebo plochá na promluvě. Možné hodnoty nejsou None pro toto slovo Mispronunciation, , , UnexpectedBreak, MissingBreaka Monotone. Úroveň wordu

V následující tabulce najdete podrobnější popis výsledků hodnocení prosody:

Pole Popis
ProsodyScore Prosody skóre celé promluvy.
Feedback Zpětná vazba na úrovni slova, včetně Break a Intonation.
Break
ErrorTypes Typy chyb souvisejících s přerušeními, včetně UnexpectedBreak a MissingBreak. Aktuální verze neposkytuje typ chyby přerušení. Je potřeba nastavit prahové hodnoty polí UnexpectedBreak – Confidence a MissingBreak – confidence rozhodnout se, jestli před slovem není neočekávaný konec nebo chybí konec.
UnexpectedBreak Označuje neočekávaný konec před slovem.
MissingBreak Označuje chybějící konec před slovem.
Thresholds Navrhované prahové hodnoty pro obě skóre spolehlivosti jsou 0,75. To znamená, že pokud je hodnota UnexpectedBreak – Confidence větší než 0,75, dojde k neočekávanému přerušení. Pokud je hodnota MissingBreak – confidence větší než 0,75, dojde k chybě. I když 0,75 je hodnota, kterou doporučujeme, je lepší upravit prahové hodnoty na základě vlastního scénáře. Pokud chcete mít u těchto dvou konců citlivost detekce proměnných, můžete těmto UnexpectedBreak - ConfidenceMissingBreak - Confidence polím přiřadit různé prahové hodnoty.
Intonation Označuje intonaci v řeči.
ErrorTypes Typy chyb související s intonací, aktuálně podporují pouze Monotone. Pokud v Monotone poli ErrorTypesexistuje, zjistí se, že promluva je monotónní. Monotón se zjistí na celé promluvě, ale značka se přiřadí všem slovům. Všechna slova ve stejné promluvě sdílejí stejné monotónní informace o detekci.
Monotone Označuje monotónní řeč.
Thresholds (Monotone Confidence) Pole Monotone - SyllablePitchDeltaConfidence jsou vyhrazena pro uživatelsky přizpůsobenou monotónovou detekci. Pokud nejste spokojeni s zadaným monotónovým rozhodnutím, upravte prahové hodnoty těchto polí tak, aby se detekce přizpůsobila vašim preferencím.

Příklad výsledku JSON

Výsledky vyhodnocení výslovnosti skriptované pro mluvené slovo "hello" se zobrazí jako řetězec JSON v následujícím příkladu.

  • Fonetické abecedy jsou IPA.
  • Slabiky se vrátí spolu s fony pro stejné slovo.
  • Offset Pomocí hodnot můžete Duration zarovnat slabiky s odpovídajícími fonymy. Například počáteční posun (117000000) druhé slabiky loʊ odpovídá třetímu foonemu, l. Posun představuje čas, kdy rozpoznaná řeč začíná ve zvukovém streamu. Hodnota se měří v 100 nanosekundových jednotkách. Další informace o Offset vlastnostech odpovědi a Durationdalší informace.
  • Existuje pět NBestPhonemes , které odpovídají počtu požadovaných mluvených fonech .
  • V Phonemesrámci , nejpravděpodobněji mluvené fomy bylo ə místo očekávaného fomy .ɛ Očekávaný fonet ɛ obdržel pouze skóre spolehlivosti 47. Další potenciální shody obdržely skóre spolehlivosti 52, 17 a 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
                        }
                    ]
                }
            ]
        }
    ]
}

Hodnocení výslovnosti můžete získat pro:

Podporované funkce na národní prostředí

Následující tabulka shrnuje, které funkce národní prostředí podporují. Další informace najdete v následujících částech.

abeceda Telefon me IPA SAPI
název Telefon me en-US en-US, zh-CN
Slabiky skupiny en-US en-US
Mluvený fones en-US en-US

Slabiky

Hodnocení výslovnosti může poskytovat výsledky posouzení na úrovni slabiky. Slovo se obvykle vyslovuje slabikou, nikoli slabikou podle foonemu. Seskupení slabiky je čitelnější a v souladu s mluvenými návyky.

Posouzení výslovnosti podporuje slabiky pouze v en-US rámci IPA a SAPI.

Následující tabulka porovnává ukázkové fony s odpovídajícími slabiky.

Ukázkové slovo Telefon mes Slabik
Technologické teknʒɪkl tek·nɑ·dʒɪkl
dobrý den hɛloʊ hɛ·loʊ
Štěstí lʌk lʌk
Fotosyntézy foʊtθsɪnθθsɪs foʊ·tθ·sɪn·θθ·sɪs

Pokud chcete požádat o výsledky na úrovni slabiky spolu s fonety, nastavte parametr konfigurace podrobností na Phonemehodnotu .

formát abecedy Telefon me

Posouzení výslovnosti podporuje název foonemu s en-US IPA a SAPIen-US.zh-CN

Pro národní prostředí, která podporují název foonemu, je název foonemu k dispozici společně se skóre. Telefon názvy motivů pomáhají určit, které fony byly vyslovovány přesně nebo nepřesně. U jiných národních prostředí můžete získat pouze skóre foonemu.

Následující tabulka porovnává ukázkové fonely SAPI s odpovídajícími fofonmey IPA.

Ukázkové slovo SAPI Telefon mes Fonály IPA
dobrý den h eh l ow h ɛ l oʊ
Štěstí l ah k l ʌ k
Fotosyntézy fow t ax s ih n th ax s ih s f oʊ t θ s ɪ n θ θ s ɪ s

Pokud chcete požádat o fofonmy IPA, nastavte abecedu foonemu na IPAhodnotu . Pokud nezadáte abecedu, foonely jsou ve výchozím nastavení ve formátu SAPI.

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"

Posouzení mluvených fonetů

Pomocí mluvených fonech můžete získat skóre spolehlivosti, které značí, jak pravděpodobné, že mluvené fomy odpovídaly očekávaným fonemům.

Posouzení výslovnosti podporuje mluvené fonemy v en-US rámci IPA a SAPI.

Pokud chcete například získat úplný mluvený zvuk slova Hello, můžete zřetězení prvního mluveného fomusu pro každý očekávaný hlásek s nejvyšším skóre spolehlivosti. V následujícím výsledku posouzení, když mluvíte slovo hello, očekávané IPA foonemy jsou h ɛ l oʊ. Ale skutečné mluvené fonemy jsou h ə l oʊ. V tomto příkladu máte pětmožnýchch Výsledek posouzení ukazuje, že nejpravděpodobnější mluvený fom byl ə místo očekávaného fomysu ɛ. Očekávaný fonet ɛ obdržel pouze skóre spolehlivosti 47. Další potenciální shody obdržely skóre spolehlivosti 52, 17 a 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
                        }
                    ]
                }
            ]
        }
    ]
}

Pokud chcete určit, zda a kolik potenciálních mluvených fonech získá skóre spolehlivosti, nastavte NBestPhonemeCount parametr na celočíselnou hodnotu, například 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