Delen via


Uitspraakbeoordeling gebruiken

In dit artikel leert u hoe u de uitspraak evalueert met spraak-naar-tekst via de Speech SDK. Uitspraakevaluatie beoordeelt uitspraken en geeft sprekers feedback over de nauwkeurigheid en de beheersing van gesproken tekst.

Notitie

Uitspraakbeoordeling maakt gebruik van een specifieke versie van het spraak-naar-tekstmodel, afgezien van het standaard spraak-naar-tekstmodel, om een consistente en nauwkeurige uitspraakbeoordeling te garanderen.

Uitspraakbeoordeling gebruiken in streamingmodus

Uitspraakbeoordeling ondersteunt ononderbroken streamingmodus. De opnametijd kan onbeperkt zijn via de Speech SDK. Zolang u niet stopt met opnemen, wordt het evaluatieproces niet voltooid en kunt u de evaluatie gemakkelijk onderbreken en hervatten.

Zie ondersteunde talen en beschikbare regio's voor informatie over de beschikbaarheid van de uitspraakbeoordeling.

Als basislijn kost het gebruik van de uitspraakbeoordeling hetzelfde als spraak-naar-tekst voor prijzen voor betalen per gebruik of prijscategorie voor toezeggingen. Als u een toezeggingslaag koopt voor spraak-naar-tekst, gaat de uitgaven voor uitspraakbeoordeling naar het voldoen aan de toezegging. Ga voor meer informatie naar Prijzen.

Zie voorbeeldcode voor het gebruik van uitspraakbeoordeling in de streamingmodus in uw eigen toepassing.

Zie voorbeeldcode voor het gebruik van uitspraakbeoordeling in de streamingmodus in uw eigen toepassing.

Zie voorbeeldcode voor het gebruik van uitspraakbeoordeling in de streamingmodus in uw eigen toepassing.

Zie voorbeeldcode voor het gebruik van uitspraakbeoordeling in de streamingmodus in uw eigen toepassing.

Zie voorbeeldcode voor het gebruik van uitspraakbeoordeling in de streamingmodus in uw eigen toepassing.

Zie voorbeeldcode voor het gebruik van uitspraakbeoordeling in de streamingmodus in uw eigen toepassing.

Zie voorbeeldcode voor het gebruik van uitspraakbeoordeling in de streamingmodus in uw eigen toepassing.

Continue herkenning

Als uw audiobestand langer is dan 30 seconden, gebruikt u de continue modus voor verwerking. De voorbeeldcode voor continue modus vindt u op GitHub onder de functie PronunciationAssessmentContinuousWithFile.

Als uw audiobestand langer is dan 30 seconden, gebruikt u de continue modus voor verwerking.

Als uw audiobestand langer is dan 30 seconden, gebruikt u de continue modus voor verwerking. De voorbeeldcode voor continue modus vindt u op GitHub onder de functie pronunciationAssessmentContinuousWithFile.

Als uw audiobestand langer is dan 30 seconden, gebruikt u de continue modus voor verwerking. De voorbeeldcode voor continue modus vindt u op GitHub onder de functie pronunciation_assessment_continuous_from_file.

Als uw audiobestand langer is dan 30 seconden, gebruikt u de continue modus voor verwerking. De voorbeeldcode voor continue modus vindt u op GitHub.

Als uw audiobestand langer is dan 30 seconden, gebruikt u de continue modus voor verwerking. De voorbeeldcode voor continue modus vindt u op GitHub onder de functie pronunciationAssessFromFile.

Als uw audiobestand langer is dan 30 seconden, gebruikt u de continue modus voor verwerking. De voorbeeldcode voor continue modus vindt u op GitHub onder de functie continuousPronunciationAssessment.

Configuratieparameters instellen

Notitie

Uitspraakbeoordeling is niet beschikbaar met de Speech SDK voor Go. In deze handleiding vindt u meer informatie over de concepten. Selecteer een andere programmeertaal voor uw oplossing.

In de SpeechRecognizer, kunt u de taal opgeven om te leren of oefenen met het verbeteren van de uitspraak. De standaardlandinstelling is en-US. Als u wilt weten hoe u de leertaal voor uitspraakbeoordeling in uw eigen toepassing opgeeft, kunt u de volgende voorbeeldcode gebruiken.

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

Tip

Als u niet zeker weet welke landinstelling moet worden ingesteld voor een taal met meerdere landinstellingen, probeert u elke landinstelling afzonderlijk. Bijvoorbeeld, voor Spaans, probeer es-ES en es-MX. Bepaal welke landinstellingen hoger zijn voor uw scenario.

U moet een PronunciationAssessmentConfig object maken. U kunt prosody- en inhoudsevaluatie instellen EnableProsodyAssessment en EnableContentAssessmentWithTopic inschakelen. Zie configuratiemethoden voor meer informatie.

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

Deze tabel bevat enkele van de belangrijkste configuratieparameters voor de uitspraakbeoordeling.

Parameter Description
ReferenceText De tekst waarop de uitspraak wordt geëvalueerd.

De ReferenceText parameter is optioneel. Stel de verwijzingstekst in als u een scriptevaluatie wilt uitvoeren voor het leerscenario voor leestaal. Stel de verwijzingstekst niet in als u een niet-beschrijvende evaluatie wilt uitvoeren.

Zie Prijzen voor prijsverschillen tussen een script en een niet-beschrijvende evaluatie.
GradingSystem Het puntsysteem voor de kalibratie van de score. FivePoint geeft een 0-5 drijvende-kommascore. HundredMark geeft een 0-100 drijvendekommascore. Standaard: FivePoint.
Granularity Bepaalt het laagste niveau van evaluatiegranulariteit. Geeft als resultaat scores voor niveaus die groter zijn dan of gelijk zijn aan de minimale waarde. Geaccepteerde waarden zijn Phoneme, waarmee de score wordt weergegeven voor de volledige tekst, het woord, de lettergreep en het phoneme-niveau, Wordwaarin de score op het niveau van volledige tekst en woord wordt weergegeven, of FullText, waarmee de score alleen op het volledige tekstniveau wordt weergegeven. De opgegeven volledige verwijzingstekst kan een woord, zin of alinea zijn. Dit is afhankelijk van de tekst van de invoerreferentie. Standaard: Phoneme.
EnableMiscue Maakt een onjuiste berekening mogelijk wanneer de uitgesproken woorden worden vergeleken met de verwijzingstekst. Het inschakelen van miscue is optioneel. Als deze waarde is True, kan de ErrorType resultaatwaarde worden ingesteld Omission op of Insertion gebaseerd op de vergelijking. Waarden zijn False en True. Standaard: False. Als u een onjuiste berekening wilt inschakelen, stelt u de optie in EnableMiscue op True. U kunt verwijzen naar het codefragment boven de tabel.
ScenarioId Een GUID voor een aangepast puntsysteem.

Configuratiemethoden

Deze tabel bevat enkele van de optionele methoden die u voor het PronunciationAssessmentConfig object kunt instellen.

Notitie

Inhouds- en prosody-evaluaties zijn alleen beschikbaar in de landinstelling en-US .

Als u de inhoud en prosody-evaluaties wilt verkennen, voert u een upgrade uit naar de SDK-versie 1.35.0 of hoger.

Er is geen lengtelimiet voor de onderwerpparameter.

Wijze Description
EnableProsodyAssessment Hiermee kunt u prosody-evaluatie inschakelen voor uw uitspraak-evaluatie. Met deze functie worden aspecten als stress, intonatie, spreeksnelheid en ritme beoordeeld. Deze functie biedt inzicht in de natuurlijkheid en expressiviteit van uw spraak.

Het inschakelen van prosody-evaluatie is optioneel. Als deze methode wordt aangeroepen, wordt de ProsodyScore resultaatwaarde geretourneerd.
EnableContentAssessmentWithTopic Hiermee schakelt u inhoudsevaluatie in. Een inhoudsevaluatie maakt deel uit van de niet-geschreven evaluatie voor het taalleerscenario. Door een beschrijving op te geven, kunt u het begrip van het specifieke onderwerp waarover wordt gesproken, verbeteren. Bijvoorbeeld in C#-aanroep pronunciationAssessmentConfig.EnableContentAssessmentWithTopic("greeting");. U kunt 'begroeting' vervangen door de gewenste tekst om een onderwerp te beschrijven. De beschrijving heeft geen lengtelimiet en ondersteunt momenteel alleen de en-US landinstelling.

Resultaten van uitspraakbeoordeling ophalen

Wanneer spraak wordt herkend, kunt u de uitspraakbeoordelingsresultaten aanvragen als SDK-objecten of een JSON-tekenreeks.

using (var speechRecognizer = new SpeechRecognizer(
    speechConfig,
    audioConfig))
{
    // (Optional) get the session ID
    speechRecognizer.SessionStarted += (s, e) => {
        Console.WriteLine($"SESSION ID: {e.SessionId}");
    };
    pronunciationAssessmentConfig.ApplyTo(speechRecognizer);
    var speechRecognitionResult = await speechRecognizer.RecognizeOnceAsync();

    // The pronunciation assessment result as a Speech SDK object
    var pronunciationAssessmentResult =
        PronunciationAssessmentResult.FromResult(speechRecognitionResult);

    // The pronunciation assessment result as a JSON string
    var pronunciationAssessmentResultJson = speechRecognitionResult.Properties.GetProperty(PropertyId.SpeechServiceResponse_JsonResult);
}

Word-, lettergrepen- en telefoonresultaten zijn niet beschikbaar met SDK-objecten met de Speech SDK voor C++. Word-, lettergrepen en phoneme-resultaten zijn alleen beschikbaar in de JSON-tekenreeks.

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

// The pronunciation assessment result as a Speech SDK object
auto pronunciationAssessmentResult =
    PronunciationAssessmentResult::FromResult(speechRecognitionResult);

// The pronunciation assessment result as a JSON string
auto pronunciationAssessmentResultJson = speechRecognitionResult->Properties.GetProperty(PropertyId::SpeechServiceResponse_JsonResult);

Zie voorbeeldcode voor meer informatie over het opgeven van de leertaal voor uitspraakbeoordeling in uw eigen toepassing.

Voor de ontwikkeling van Android-toepassingen zijn het woord, de lettergrepen en de telefoonmeresultaten beschikbaar met behulp van SDK-objecten met de Speech SDK voor Java. De resultaten zijn ook beschikbaar in de JSON-tekenreeks. Voor de ontwikkeling van Java Runtime-toepassingen (JRE) zijn het woord, de lettergreep en het telefoonmeresultaat alleen beschikbaar in de JSON-tekenreeks.

SpeechRecognizer speechRecognizer = new SpeechRecognizer(
    speechConfig,
    audioConfig);
// (Optional) get the session ID
speechRecognizer.sessionStarted.addEventListener((s, e) -> {
    System.out.println("SESSION ID: " + e.getSessionId());
});
pronunciationAssessmentConfig.applyTo(speechRecognizer);
Future<SpeechRecognitionResult> future = speechRecognizer.recognizeOnceAsync();
SpeechRecognitionResult speechRecognitionResult = future.get(30, TimeUnit.SECONDS);

// The pronunciation assessment result as a Speech SDK object
PronunciationAssessmentResult pronunciationAssessmentResult =
    PronunciationAssessmentResult.fromResult(speechRecognitionResult);

// The pronunciation assessment result as a JSON string
String pronunciationAssessmentResultJson = speechRecognitionResult.getProperties().getProperty(PropertyId.SpeechServiceResponse_JsonResult);

recognizer.close();
speechConfig.close();
audioConfig.close();
pronunciationAssessmentConfig.close();
speechRecognitionResult.close();
var speechRecognizer = SpeechSDK.SpeechRecognizer.FromConfig(speechConfig, audioConfig);
// (Optional) get the session ID
speechRecognizer.sessionStarted = (s, e) => {
    console.log(`SESSION ID: ${e.sessionId}`);
};
pronunciationAssessmentConfig.applyTo(speechRecognizer);

speechRecognizer.recognizeOnceAsync((speechRecognitionResult: SpeechSDK.SpeechRecognitionResult) => {
    // The pronunciation assessment result as a Speech SDK object
    var pronunciationAssessmentResult = SpeechSDK.PronunciationAssessmentResult.fromResult(speechRecognitionResult);

    // The pronunciation assessment result as a JSON string
    var pronunciationAssessmentResultJson = speechRecognitionResult.properties.getProperty(SpeechSDK.PropertyId.SpeechServiceResponse_JsonResult);
},
{});

Zie voorbeeldcode voor meer informatie over het opgeven van de leertaal voor uitspraakbeoordeling in uw eigen toepassing.

speech_recognizer = speechsdk.SpeechRecognizer(
        speech_config=speech_config, \
        audio_config=audio_config)
# (Optional) get the session ID
speech_recognizer.session_started.connect(lambda evt: print(f"SESSION ID: {evt.session_id}"))
pronunciation_assessment_config.apply_to(speech_recognizer)
speech_recognition_result = speech_recognizer.recognize_once()
# The pronunciation assessment result as a Speech SDK object
pronunciation_assessment_result = speechsdk.PronunciationAssessmentResult(speech_recognition_result)

# The pronunciation assessment result as a JSON string
pronunciation_assessment_result_json = speech_recognition_result.properties.get(speechsdk.PropertyId.SpeechServiceResponse_JsonResult)

Zie voorbeeldcode voor meer informatie over het opgeven van de leertaal voor uitspraakbeoordeling in uw eigen toepassing.

SPXSpeechRecognizer* speechRecognizer = \
        [[SPXSpeechRecognizer alloc] initWithSpeechConfiguration:speechConfig
                                              audioConfiguration:audioConfig];
// (Optional) get the session ID
[speechRecognizer addSessionStartedEventHandler: ^ (SPXRecognizer *sender, SPXSessionEventArgs *eventArgs) {
    NSLog(@"SESSION ID: %@", eventArgs.sessionId);
}];
[pronunciationAssessmentConfig applyToRecognizer:speechRecognizer];

SPXSpeechRecognitionResult *speechRecognitionResult = [speechRecognizer recognizeOnce];

// The pronunciation assessment result as a Speech SDK object
SPXPronunciationAssessmentResult* pronunciationAssessmentResult = [[SPXPronunciationAssessmentResult alloc] init:speechRecognitionResult];

// The pronunciation assessment result as a JSON string
NSString* pronunciationAssessmentResultJson = [speechRecognitionResult.properties getPropertyByName:SPXSpeechServiceResponseJsonResult];

Zie voorbeeldcode voor meer informatie over het opgeven van de leertaal voor uitspraakbeoordeling in uw eigen toepassing.

let speechRecognizer = try! SPXSpeechRecognizer(speechConfiguration: speechConfig, audioConfiguration: audioConfig)
// (Optional) get the session ID
speechRecognizer.addSessionStartedEventHandler { (sender, evt) in
	print("SESSION ID: \(evt.sessionId)")
try! pronConfig.apply(to: speechRecognizer)

let speechRecognitionResult = try? speechRecognizer.recognizeOnce()

// The pronunciation assessment result as a Speech SDK object
let pronunciationAssessmentResult = SPXPronunciationAssessmentResult(speechRecognitionResult!)

// The pronunciation assessment result as a JSON string
let pronunciationAssessmentResultJson = speechRecognitionResult!.properties?.getPropertyBy(SPXPropertyId.speechServiceResponseJsonResult)

Resultaatparameters

Afhankelijk van of u een script of een niet-beschrijvende evaluatie gebruikt, kunt u verschillende beoordelingsresultaten krijgen. Een scriptevaluatie is bedoeld voor het leerscenario voor leestaal. Niet-beschrijvende evaluatie is bedoeld voor het taalleerscenario voor sprekende talen.

Resultaten van de scriptevaluatie

Deze tabel bevat enkele van de belangrijkste uitspraakbeoordelingsresultaten voor de scriptevaluatie of het leesscenario.

Parameter Description Granulariteit
AccuracyScore Uitspraaknauwkeurigheid van de spraak. Nauwkeurigheid geeft aan hoe dicht de telefoontjes overeenkomen met de uitspraak van een systeemeigen spreker. Nauwkeurigheidsscores voor lettergrepen, woorden en volledige tekst worden samengevoegd op basis van de nauwkeurigheidsscore op telefoonniveau en verfijnd met evaluatiedoelstellingen. Phoneme-niveau,
Lettergreepniveau (alleen nl-NL),
Word-niveau,
Niveau Volledige tekst
FluencyScore Vloeiendheid van de gegeven spraak. Fluency geeft aan hoe nauw de spraak overeenkomt met het gebruik van stille pauzes tussen woorden. Niveau Volledige tekst
CompletenessScore Volledigheid van de spraak, berekend door de verhouding van uitgesproken woorden tot de invoerverwijzingstekst. Niveau Volledige tekst
ProsodyScore Prosody van de gegeven toespraak. Prosody geeft aan hoe natuurlijk de gegeven spraak is, inclusief stress, intonatie, spreeksnelheid en ritme. Niveau Volledige tekst
PronScore Algehele score van de uitspraakkwaliteit van de gegeven spraak. PronScorewordt berekend op basis vanAccuracyScore, FluencyScoreen ProsodyScore CompletenessScoremet gewicht, mits ProsodyScore en CompletenessScore beschikbaar zijn. Als een van deze niet beschikbaar is, PronScore wordt die score niet overwogen. Niveau Volledige tekst
ErrorType Deze waarde geeft het fouttype aan in vergelijking met de verwijzingstekst. Opties zijn onder andere of een woord wordt weggelaten, ingevoegd of onjuist wordt ingevoegd met een onderbreking. Er wordt ook aangegeven dat er een onderbreking ontbreekt bij interpunctie. Het geeft ook aan of een woord slecht uitgesproken, of monotonisch stijgend, dalend of plat is op de uiting. Mogelijke waarden zijn None voor geen enkele fout op dit woord, Omission, Insertion, Mispronunciation, , UnexpectedBreaken MonotoneMissingBreak. Het fouttype kan zijn Mispronunciation wanneer de uitspraak AccuracyScore voor een woord lager is dan 60. Niveau van Word

Niet-beschrijvende evaluatieresultaten

Deze tabel bevat enkele van de belangrijkste uitspraakbeoordelingsresultaten voor de niet-beschrijvende evaluatie of het spreekscenario.

VocabularyScore, GrammarScoreen TopicScore parameters worden samengeteld voor de gecombineerde inhoudsevaluatie.

Notitie

Inhouds- en prosody-evaluaties zijn alleen beschikbaar in de landinstelling en-US .

Responsparameter Beschrijving Granulariteit
AccuracyScore Uitspraaknauwkeurigheid van de spraak. Nauwkeurigheid geeft aan hoe dicht de telefoontjes overeenkomen met de uitspraak van een systeemeigen spreker. Nauwkeurigheidsscores voor lettergrepen, woorden en volledige tekst worden samengevoegd op basis van de nauwkeurigheidsscore op telefoonniveau en verfijnd met evaluatiedoelstellingen. Phoneme-niveau,
Lettergreepniveau (alleen nl-NL),
Word-niveau,
Niveau Volledige tekst
FluencyScore Vloeiendheid van de gegeven spraak. Fluency geeft aan hoe nauw de spraak overeenkomt met het gebruik van stille pauzes tussen woorden. Niveau Volledige tekst
ProsodyScore Prosody van de gegeven toespraak. Prosody geeft aan hoe natuurlijk de gegeven spraak is, inclusief stress, intonatie, spreeksnelheid en ritme. Niveau Volledige tekst
VocabularyScore Vaardigheid in lexical gebruik. Het evalueert het effectieve gebruik van woorden en hun geschiktheid binnen de gegeven context om ideeën nauwkeurig uit te drukken en het niveau van lexicale complexiteit. Niveau Volledige tekst
GrammarScore Juistheid van het gebruik van grammatica en verscheidenheid aan zinspatronen. Lexicale nauwkeurigheid, grammaticale nauwkeurigheid en diversiteit van zinsstructuren verhogen samen grammaticale fouten. Niveau Volledige tekst
TopicScore Niveau van begrip en betrokkenheid bij het onderwerp, dat inzicht biedt in het vermogen van de spreker om hun gedachten en ideeën effectief uit te drukken en de mogelijkheid om met het onderwerp te communiceren. Niveau Volledige tekst
PronScore Algehele score van de uitspraakkwaliteit van de gegeven spraak. PronScore wordt berekend op basis van AccuracyScore, FluencyScoreen ProsodyScore met gewicht, mits deze ProsodyScore beschikbaar is. Als ProsodyScore deze score niet beschikbaar is, PronScore kunt u deze score niet overwegen. Niveau Volledige tekst
ErrorType Een woord is slecht uitgesproken, onjuist ingevoegd met een onderbreking of een onderbreking ontbreekt bij interpunctie. Het geeft ook aan of een uitspraak monotonisch oploopt, daalt of plat is op de uiting. Mogelijke waarden zijn None voor geen enkele fout op dit woord, Mispronunciation, UnexpectedBreak, en MonotoneMissingBreak. Niveau van Word

In de volgende tabel worden de prosody-evaluatieresultaten gedetailleerder beschreven:

Veld Beschrijving
ProsodyScore Prosody score van de hele uiting.
Feedback Feedback over het woordniveau, inclusief Break en Intonation.
Break
ErrorTypes Fouttypen met betrekking tot onderbrekingen, inclusief UnexpectedBreak en MissingBreak. In de huidige versie wordt het fouttype onderbreking niet opgegeven. U moet drempelwaarden instellen voor de velden UnexpectedBreak – Confidence en MissingBreak – confidence bepalen of er een onverwacht onderbrekings- of ontbrekende onderbreking is voor het woord.
UnexpectedBreak Geeft een onverwacht einde aan voor het woord.
MissingBreak Geeft een ontbrekende onderbreking voor het woord aan.
Thresholds Voorgestelde drempelwaarden voor beide betrouwbaarheidsscores zijn 0,75. Dat betekent dat als de waarde UnexpectedBreak – Confidence groter is dan 0,75, een onverwacht onderbrekingseinde heeft. Als de waarde MissingBreak – confidence groter is dan 0,75, ontbreekt er een onderbreking. Hoewel 0,75 een waarde is die we aanbevelen, is het beter om de drempelwaarden aan te passen op basis van uw eigen scenario. Als u de gevoeligheid voor variabeledetectie voor deze twee onderbrekingen wilt hebben, kunt u verschillende drempelwaarden toewijzen aan de UnexpectedBreak - Confidence en MissingBreak - Confidence velden.
Intonation Geeft de intonatie in spraak aan.
ErrorTypes Fouttypen met betrekking tot intonatie, die momenteel alleen Monotone ondersteunen. Als het Monotone veld ErrorTypesbestaat, wordt de utterance gedetecteerd als monotonisch. Monotone wordt gedetecteerd in de hele utterance, maar de tag wordt toegewezen aan alle woorden. Alle woorden in dezelfde utterance delen dezelfde monotone detectie-informatie.
Monotone Geeft monotone spraak aan.
Thresholds (Monotone Confidence) De velden Monotone - SyllablePitchDeltaConfidence zijn gereserveerd voor door de gebruiker aangepaste monotondetectie. Als u niet tevreden bent met de opgegeven monotone beslissing, past u de drempelwaarden voor deze velden aan om de detectie aan te passen op basis van uw voorkeuren.

Voorbeeld van JSON-resultaat

De resultaten van de beoordeling van de uitspraak met scripts voor het gesproken woord 'hallo' worden weergegeven als een JSON-tekenreeks in het volgende voorbeeld.

  • Het phoneme-alfabet is IPA.
  • De lettergrepen worden samen met phonemes geretourneerd voor hetzelfde woord.
  • U kunt de Offset en Duration waarden gebruiken om lettergrepen uit te lijnen met de bijbehorende telefoontjes. De beginverschil (11700000) van de tweede lettergreep loʊ wordt bijvoorbeeld uitgelijnd met het derde foneme, l. De offset vertegenwoordigt het tijdstip waarop de herkende spraak begint in de audiostream. De waarde wordt gemeten in eenheden van 100 nanoseconden. Zie antwoordeigenschappen voor meer informatie over Offset en.Duration
  • Er zijn vijf NBestPhonemes die overeenkomen met het aantal gesproken telefoontjes dat is aangevraagd.
  • Binnen Phonemes, de meest waarschijnlijk gesproken fonemes was ə in plaats van de verwachte foneme ɛ. Het verwachte foneme ɛ heeft slechts een betrouwbaarheidsscore van 47 ontvangen. Andere mogelijke overeenkomsten hebben betrouwbaarheidsscores van 52, 17 en 2 ontvangen.
{
    "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
                        }
                    ]
                }
            ]
        }
    ]
}

U kunt beoordelingsscores voor de uitspraak krijgen voor:

  • Volledige tekst
  • Woorden
  • Lettergreepgroepen
  • Telefoontjes in SAPI- of IPA-indeling

Ondersteunde functies per landinstelling

De volgende tabel bevat een overzicht van de functies die worden ondersteund door landinstellingen. Zie de volgende secties voor meer informatie. Als de landinstellingen die u nodig hebt, niet worden vermeld in de volgende tabel voor de ondersteunde functie, vult u dit intakeformulier in voor meer hulp.

Foneme alfabet IPA SAPI
Naam van foneme en-US en-US, zh-CN
Lettergreepgroep en-US en-US
Gesproken telefoon en-US en-US

Lettergreepgroepen

Beoordeling van uitspraak kan beoordelingsresultaten op lettergrepenniveau bieden. Een woord wordt meestal uitgesproken als lettergreep door lettergreep in plaats van telefoonme door foneme. Groeperen in lettergrepen is beter leesbaar en afgestemd op spreekgewoonten.

Uitspraakbeoordeling ondersteunt lettergrepen alleen in en-US met IPA en met SAPI.

In de volgende tabel worden voorbeeldtelefoons vergeleken met de bijbehorende lettergrepen.

Voorbeeldwoord Fonemen Lettergrepen
technologisch teknʒɪkl tek·nɑ·dʒɪkl
hallo hɛloʊ hɛ·loʊ
geluk lʌk lʌk
fotosynthese foʊtɪnθɪs foʊ·tɪn·θɪs

Als u lettergrepen wilt aanvragen, samen met phonemes, stelt u de granulariteitsconfiguratieparameter in op Phoneme.

Fonetische alfabetindeling

Uitspraakbeoordeling ondersteunt fonetische naam in en-US met IPA en in en-US en zh-CN met SAPI.

Voor landinstellingen die de naam van het telefoongesprek ondersteunen, wordt de naam van het telefoonme samen met de score opgegeven. Namen van fonetische namen helpen identificeren welke telefoontjes nauwkeurig of onnauwkeurig zijn uitgesproken. Voor andere landinstellingen kunt u alleen de fonetische score krijgen.

In de volgende tabel worden voorbeeld-SAPI-phonemes vergeleken met de bijbehorende IPA-telefoontjes.

Voorbeeldwoord SAPI Phonemes IPA-telefoontjes
hallo h eh l ow h ɛ l oʊ
geluk l ah k l ʌ k
fotosynthese fow t ax s ih n th ax s ih s f oʊ t ɪ n θ ɪ s ɪ s

Als u IPA-telefoontjes wilt aanvragen, stelt u het phoneme-alfabet in op IPA. Als u het alfabet niet opgeeft, hebben de telefoontjes standaard de SAPI-indeling.

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"

Gesproken telefoontjes beoordelen

Met gesproken telefoontjes krijgt u betrouwbaarheidsscores die aangeven hoe waarschijnlijk de gesproken fonemes overeenkomen met de verwachte foneten.

Uitspraakbeoordeling ondersteunt gesproken telefoontjes in en-US met IPA en met SAPI.

Als u bijvoorbeeld het volledige gesproken geluid voor het woord Hellowilt verkrijgen, kunt u het eerste gesproken telefoonme samenvoegen voor elke verwachte phoneme met de hoogste betrouwbaarheidsscore. In het volgende evaluatieresultaat, wanneer u het woord hellospreekt, zijn h ɛ l oʊde verwachte IPA-telefoontjes. De werkelijke gesproken telefoontjes zijn h ə l oʊechter . In dit voorbeeld hebt u vijf mogelijke kandidaten voor elk verwacht foneme. Het evaluatieresultaat toont aan dat het meest waarschijnlijke gesproken foneme in plaats van het verwachte foneme ɛwasə. Het verwachte foneme ɛ heeft slechts een betrouwbaarheidsscore van 47 ontvangen. Andere mogelijke overeenkomsten hebben betrouwbaarheidsscores van 52, 17 en 2 ontvangen.

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

Als u wilt aangeven of en hoeveel potentiële gesproken fonemes betrouwbaarheidsscores moeten krijgen, stelt u de NBestPhonemeCount parameter in op een geheel getal, zoals 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

Berekening van uitspraakscore

Uitspraakscores worden berekend door nauwkeurigheid, prosody, fluency en volledigheidsscores te wegen op basis van specifieke formules voor lees- en spreekscenario's.

Bij het sorteren van de scores van nauwkeurigheid, prosody, vloeiendheid en volledigheid van laag naar hoog (als elke score beschikbaar is) en de laagste score vertegenwoordigt tot de hoogste score als s0 tot s3, wordt de uitspraakscore als volgt berekend:

Voor het leesscenario:

  • Met prosody score: PronScore = 0,4 * s0 + 0,2 * s1 + 0,2 * s2 + 0,2 * s3
  • Zonder prosody score: PronScore = 0,6 * s0 + 0,2 * s1 + 0,2 * s2

Voor het spreekscenario (de volledigheidsscore is niet van toepassing):

  • Met prosody score: PronScore = 0,6 * s0 + 0,2 * s1 + 0,2 * s2
  • Zonder prosody score: PronScore = 0,6 * s0 + 0,4 * s1

Deze formule biedt een gewogen berekening op basis van het belang van elke score, waardoor een uitgebreide evaluatie van de uitspraak wordt gewaarborgd.