Använda uttalsbedömning

I den här artikeln får du lära dig hur du utvärderar uttal med tal till text via Speech SDK. Uttalsutvärderingen bedömer uttalet och ger talarna feedback om noggrannhet och naturlighet i det talade språket.

Använda uttalsbedömning i strömningsläge

Uttalsbedömning stöder oavbrutet strömningsläge. Inspelningstiden kan vara obegränsad via Speech SDK. Så länge du inte slutar spela in slutförs inte utvärderingsprocessen och du kan pausa och återuppta utvärderingen på ett bekvämt sätt.

Information om tillgänglighet för uttalsutvärdering finns i språk som stöds och tillgängliga regioner.

Som baslinje kostar användningen av uttalsbedömning samma sak som tal till text för prissättning på betala per användning eller åtagandenivå. Om du köper en åtagandenivå för tal till text går utgiften för uttalsbedömningen till att uppfylla åtagandet. Mer information finns i Prissättning.

Information om hur du använder Uttalsbedömning i strömningsläge i ditt eget program finns i exempelkod.

Information om hur du använder Uttalsbedömning i strömningsläge i ditt eget program finns i exempelkod.

Information om hur du använder Uttalsbedömning i strömningsläge i ditt eget program finns i exempelkod.

Information om hur du använder Uttalsbedömning i strömningsläge i ditt eget program finns i exempelkod.

Information om hur du använder Uttalsbedömning i strömningsläge i ditt eget program finns i exempelkod.

Information om hur du använder Uttalsbedömning i strömningsläge i ditt eget program finns i exempelkod.

Information om hur du använder Uttalsbedömning i strömningsläge i ditt eget program finns i exempelkod.

Ange konfigurationsparametrar

Kommentar

Uttalsutvärdering är inte tillgängligt med Speech SDK för Go. Du kan läsa om begreppen i den här guiden. Välj ett annat programmeringsspråk för din lösning.

SpeechRecognizerI kan du ange språket för att lära dig eller öva på att förbättra uttalet. Standardspråket är en-US. Information om hur du anger inlärningsspråket för uttalsbedömning i ditt eget program finns i exempelkod.

Dricks

Om du inte är säker på vilka nationella inställningar som ska anges för ett språk som har flera nationella inställningar kan du prova varje språkvariant separat. För spanska kan du till exempel prova es-ES och es-MX. Ta reda på vilka nationella värden som är högre för ditt scenario.

Du måste skapa ett PronunciationAssessmentConfig objekt. Du kan ange EnableProsodyAssessment och EnableContentAssessmentWithTopic aktivera prosody- och innehållsutvärdering. Mer information finns i konfigurationsmetoder.

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

I den här tabellen visas några av de viktigaste konfigurationsparametrarna för uttalsutvärdering.

Parameter Description
ReferenceText Texten som uttalet utvärderas mot.

Parametern ReferenceText är valfri. Ange referenstexten om du vill köra en skriptad utvärdering för lässpråkinlärningsscenariot. Ange inte referenstexten om du vill köra en oskriven utvärdering.

Prisskillnader mellan skriptad och oskriven utvärdering finns i Prissättning.
GradingSystem Poängsystemet för poängkalibrering. FivePoint ger en flyttalspoäng på 0–5. HundredMark ger en flyttalspoäng på 0–100. Standard: FivePoint.
Granularity Avgör den lägsta nivån av utvärderingskornighet. Returnerar poäng för nivåer som är större än eller lika med det minimala värdet. Godkända värden är Phoneme, som visar poängen på den fullständiga text-, ord-, stavelse- och fonemnivån, , Wordsom visar poängen på den fullständiga text- och ordnivån, eller FullText, som endast visar poängen på den fullständiga textnivån. Den angivna fullständiga referenstexten kan vara ett ord, en mening eller ett stycke. Det beror på din indatareferenstext. Standard: Phoneme.
EnableMiscue Aktiverar felberäkning när de uttalade orden jämförs med referenstexten. Det är valfritt att aktivera feldokument. Om det här värdet är TrueErrorType kan resultatvärdet anges till Omission eller Insertion baserat på jämförelsen. Värden är False och True. Standard: False. Om du vill aktivera felberäkning anger du EnableMiscue till True. Du kan referera till kodfragmentet under tabellen.
ScenarioId Ett GUID för ett anpassat punktsystem.

Konfigurationsmetoder

I den här tabellen visas några av de valfria metoder som du kan ange för PronunciationAssessmentConfig objektet.

Kommentar

Innehålls- och prosodyutvärderingar är endast tillgängliga i språkvarianten en-US .

Om du vill utforska innehåll och prosody-utvärderingar uppgraderar du till SDK version 1.35.0 eller senare.

Metod beskrivning
EnableProsodyAssessment Aktiverar prosodyutvärdering för uttalsutvärderingen. Den här funktionen utvärderar aspekter som stress, intonation, talhastighet och rytm. Den här funktionen ger insikter om det naturliga och uttrycksfulla i ditt tal.

Det är valfritt att aktivera prosody-utvärdering. Om den här metoden anropas ProsodyScore returneras resultatvärdet.
EnableContentAssessmentWithTopic Aktiverar innehållsutvärdering. En innehållsutvärdering är en del av den oskrivna utvärderingen för scenariot för språkinlärning. Genom att ange en beskrivning kan du förbättra utvärderingens förståelse för det specifika ämne som talas om. I C# anropar du pronunciationAssessmentConfig.EnableContentAssessmentWithTopic("greeting");till exempel . Du kan ersätta "hälsning" med önskad text för att beskriva ett ämne. Beskrivningen har ingen längdgräns och stöder en-US för närvarande endast nationella inställningar.

Hämta uttalsutvärderingsresultat

När tal identifieras kan du begära uttalsutvärderingsresultatet som SDK-objekt eller en JSON-sträng.

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);
}

Word-, stavelse- och fonetikresultat är inte tillgängliga med hjälp av SDK-objekt med Speech SDK för C++. Word-, stavelse- och fonetikresultat är endast tillgängliga i JSON-strängen.

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

Information om hur du anger inlärningsspråket för uttalsbedömning i ditt eget program finns i exempelkod.

För Utveckling av Android-program är resultatet av ordet, stavelsen och fonetiken tillgängliga med hjälp av SDK-objekt med Speech SDK för Java. Resultaten är också tillgängliga i JSON-strängen. För utveckling av Java Runtime-program (JRE) är ordet, stavelsen och fonetikresultaten endast tillgängliga i JSON-strängen.

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);
},
{});

Information om hur du anger inlärningsspråket för uttalsbedömning i ditt eget program finns i exempelkod.

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)

Information om hur du anger inlärningsspråket för uttalsbedömning i ditt eget program finns i exempelkod.

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

Information om hur du anger inlärningsspråket för uttalsbedömning i ditt eget program finns i exempelkod.

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)

Resultatparametrar

Beroende på om du använder skriptbaserad eller oskriven utvärdering kan du få olika uttalsutvärderingsresultat. Skriptad utvärdering är för lässpråkinlärningsscenariot. Oskriven utvärdering gäller för språkinlärningsscenariot.

Kommentar

Prisskillnader mellan skriptad och oskriven utvärdering finns i Prissättning.

Resultat av skriptutvärdering

Den här tabellen visar några av de viktigaste uttalsutvärderingsresultaten för den skriptade utvärderingen eller lässcenariot.

Parameter Description Precision
AccuracyScore Uttalsprecision av talet. Noggrannhet anger hur nära phonemes matchar uttal från en infödd talare. Precisionspoäng för stavelse, ord och fulltext aggregeras från noggrannhetspoängen på fonetiknivå och förfinas med utvärderingsmål. Telefon me-nivå,
Stavelsenivå (endast en-US),
Word-nivå,
Fulltextnivå
FluencyScore Flyt i det givna talet. Fluency anger hur nära talet matchar en infödd talares användning av tysta brytningar mellan ord. Fulltextnivå
CompletenessScore Talens fullständighet beräknas av förhållandet mellan uttalade ord och indatareferenstexten. Fulltextnivå
ProsodyScore Prosody av det givna talet. Prosody anger hur naturligt det givna talet är, inklusive stress, intonation, talhastighet och rytm. Fulltextnivå
PronScore Övergripande poäng av uttalskvaliteten för det givna talet. PronScore aggregeras från AccuracyScore, FluencyScoreoch CompletenessScore med vikt. Fulltextnivå
ErrorType Det här värdet anger feltypen jämfört med referenstexten. Alternativen inkluderar om ett ord utelämnas, infogas eller infogas felaktigt med en paus. Det indikerar också en saknad brytpunkt vid skiljetecken. Det anger också om ett ord är dåligt uttalat, eller monotont stigande, fallande eller platt på yttrandet. Möjliga värden är None för inget fel på det här ordet, Omission, Insertion, Mispronunciation, UnexpectedBreak, MissingBreakoch Monotone. Feltypen kan vara Mispronunciation när uttalet AccuracyScore för ett ord är under 60. Word-nivå

Oskrivna utvärderingsresultat

I den här tabellen visas några av de viktigaste uttalsbedömningsresultaten för den oskrivna utvärderingen eller talscenariot.

VocabularyScore, GrammarScore, och TopicScore parametrarna summeras till den kombinerade innehållsutvärderingen.

Kommentar

Innehålls- och prosodyutvärderingar är endast tillgängliga i språkvarianten en-US .

Svarsparameter beskrivning Precision
AccuracyScore Uttalsprecision av talet. Noggrannhet anger hur nära phonemes matchar uttal från en infödd talare. Precisionspoäng för stavelse, ord och fulltext aggregeras från noggrannhetspoäng på fonetiknivå och förfinas med utvärderingsmål. Telefon me-nivå,
Stavelsenivå (endast en-US),
Word-nivå,
Fulltextnivå
FluencyScore Flyt i det givna talet. Fluency anger hur nära talet matchar en infödd talares användning av tysta brytningar mellan ord. Fulltextnivå
ProsodyScore Prosody av det givna talet. Prosody anger hur naturligt det givna talet är, inklusive stress, intonation, talhastighet och rytm. Fulltextnivå
VocabularyScore Kunskaper i lexikal användning. Den utvärderar talarens effektiva användning av ord och deras lämplighet i den givna kontexten för att uttrycka idéer korrekt och nivån av lexikal komplexitet. Fulltextnivå
GrammarScore Korrekthet i att använda grammatik och olika meningsmönster. Lexikal noggrannhet, grammatisk noggrannhet och mångfald av meningsstrukturer höjer gemensamt grammatiska fel. Fulltextnivå
TopicScore Nivå av förståelse och engagemang i ämnet, som ger insikter om talarens förmåga att uttrycka sina tankar och idéer effektivt och förmågan att engagera sig i ämnet. Fulltextnivå
PronScore Övergripande poäng av uttalskvaliteten för det givna talet. Det här värdet aggregeras från AccuracyScore, FluencyScoreoch CompletenessScore med vikt. Fulltextnivå
ErrorType Ett ord är dåligt uttalat, felaktigt infogat med en paus eller missar en paus vid skiljetecken. Det anger också om ett uttal är monotont stigande, fallande eller platt på yttrandet. Möjliga värden är None för inget fel på det här ordet, Mispronunciation, UnexpectedBreak, MissingBreakoch Monotone. Word-nivå

I följande tabell beskrivs resultatet av prosody-utvärderingen mer detaljerat:

Fält beskrivning
ProsodyScore Prosody-poäng för hela yttrandet.
Feedback Feedback på ordnivå, inklusive Break och Intonation.
Break
ErrorTypes Feltyper relaterade till pauser, inklusive UnexpectedBreak och MissingBreak. Den aktuella versionen anger inte typ av brytfel. Du måste ange tröskelvärden för fälten UnexpectedBreak – Confidence och MissingBreak – confidence avgöra om det finns en oväntad brytning eller en bristning före ordet.
UnexpectedBreak Anger en oväntad paus före ordet.
MissingBreak Anger en saknad paus före ordet.
Thresholds Föreslagna tröskelvärden för båda konfidenspoängen är 0,75. Det innebär att om värdet UnexpectedBreak – Confidence för är större än 0,75 har det en oväntad paus. Om värdet MissingBreak – confidence för är större än 0,75 har det en saknad brytning. Även om 0,75 är ett värde som vi rekommenderar är det bättre att justera tröskelvärdena baserat på ditt eget scenario. Om du vill ha känslighet för variabelidentifiering på dessa två raster kan du tilldela olika tröskelvärden till fälten UnexpectedBreak - Confidence och MissingBreak - Confidence .
Intonation Anger intonation i tal.
ErrorTypes Feltyper relaterade till intonation, som för närvarande endast stöder monoton. Om det Monotone finns i fältet ErrorTypesidentifieras yttrandet som monotont. Monoton identifieras i hela yttrandet, men taggen tilldelas till alla ord. Alla ord i samma yttrande delar samma information om monoton identifiering.
Monotone Anger monotont tal.
Thresholds (Monotone Confidence) Fälten Monotone - SyllablePitchDeltaConfidence är reserverade för användaranpassad monotonidentifiering. Om du inte är nöjd med det angivna monotona beslutet justerar du tröskelvärdena för dessa fält för att anpassa identifieringen enligt dina inställningar.

JSON-resultatexempel

Utvärderingsresultatet för skriptat uttal för det talade ordet "hello" visas som en JSON-sträng i följande exempel.

  • Fonetikalfabetet är IPA.
  • Stavelserna returneras tillsammans med fonem för samma ord.
  • Du kan använda Offset värdena och Duration för att justera stavelser med motsvarande fonem. Startförskjutningen (11700000) för den andra stavelsen loʊ justeras till den tredje fonem, l. Förskjutningen representerar den tidpunkt då det identifierade talet börjar i ljudströmmen. Värdet mäts i 100 nanosekunder. Mer information om Offset och finns i svarsegenskaperDuration.
  • Det finns fem NBestPhonemes som motsvarar det antal talade fonem som begärs.
  • Inom Phonemesvar ə de mest sannolika talade telefonerna i stället för det förväntade telefonljudet ɛ. Den förväntade telefontelefonen ɛ fick bara en konfidenspoäng på 47. Andra potentiella matcher fick förtroendepoäng på 52, 17 och 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
                        }
                    ]
                }
            ]
        }
    ]
}

Du kan få utvärderingspoäng för uttal för:

Funktioner som stöds per språk

I följande tabell sammanfattas vilka funktioner som stöder nationella inställningar. Mer information finns i följande avsnitt.

Telefon me-alfabet IPA SAPI
Telefon me-namn en-US en-US, zh-CN
Stavelsegrupp en-US en-US
Talat fonme en-US en-US

Stavelsegrupper

Uttalsutvärdering kan ge utvärderingsresultat på stavelsenivå. Ett ord uttalas vanligtvis stavelse av stavelse snarare än phoneme av phoneme. Gruppering i stavelser är mer läsbart och i linje med talvanor.

Uttalsutvärdering stöder endast stavelsegrupper i en-US med IPA och med SAPI.

I följande tabell jämförs exempeltelefoner med motsvarande stavelser.

Exempelord Telefon Stavelser
Tekniska teknələdʒɪkl tek·nə·lɑ·dʒɪkl
hallå hɛloʊ hɛ·loʊ
Lycka lʌk lʌk
Photosynthesis foʊtəsɪnθəsɪs foʊ·tə·sɪn·θə·sɪs

Om du vill begära resultat på stavelsenivå tillsammans med fonem anger du konfigurationsparametern för kornighet till Phoneme.

Telefon me alfabetformat

Uttalsutvärdering stöder phoneme-namn i en-US med IPA och i en-US och zh-CN med SAPI.

För nationella inställningar som stöder phoneme-namn tillhandahålls phoneme-namnet tillsammans med poängen. Telefon me-namn hjälper till att identifiera vilka fonem som har uttalats korrekt eller felaktigt. För andra nationella inställningar kan du bara få fonetikpoängen.

I följande tabell jämförs SAPI-exempeltelefoner med motsvarande IPA-fonem.

Exempelord SAPI-Telefon mes IPA-fonem
hallå h eh l ow h ɛ l oʊ
Lycka l ah k l ʌ k
Photosynthesis f ow t ax s ih n th ax s ih s f oʊ t ə s ɪ n θ ə s ɪ s

Om du vill begära IPA-fonem ställer du in fonem-alfabetet på IPA. Om du inte anger alfabetet är fonem i SAPI-format som standard.

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"

Utvärdera talade fonem

Med talade fonem kan du få förtroendepoäng som anger hur sannolikt de talade telefonerna matchade de förväntade telefonerna.

Uttalsbedömning stöder talade phonemes i en-US med IPA och med SAPI.

Om du till exempel vill få det fullständiga talade ljudet för ordet Hellokan du sammanfoga det första talade telefonljudet för varje förväntat fonem med den högsta konfidenspoängen. I följande utvärderingsresultat är h ɛ l oʊförväntade IPA-fonem när du talar ordet hello. De faktiska talade telefonerna är h ə l oʊdock . Du har fem möjliga kandidater för varje förväntat fonem i det här exemplet. Utvärderingsresultatet visar att det mest sannolika talade telefonljudet var ə i stället för det förväntade telefonljudet ɛ. Den förväntade telefontelefonen ɛ fick bara en konfidenspoäng på 47. Andra potentiella matcher fick förtroendepoäng på 52, 17 och 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
                        }
                    ]
                }
            ]
        }
    ]
}

Om du vill ange om och hur många potentiella talade fonem som ska få konfidenspoäng för anger du parametern NBestPhonemeCount till ett heltalsvärde, 5till exempel .

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
  • Lär dig mer om kvalitetsmått.
  • Prova uttalsutvärdering i Speech Studio.
  • Kolla in en demo för utvärdering av uttal som är lätt att distribuera.
  • Titta på videodemonstrationen av uttalsbedömningen.