Freigeben über


Verwenden der Aussprachebewertung

In diesem Artikel erfahren Sie, wie Sie über das Speech SDK mit der Spracherkennung die Aussprache bewerten können. Die Aussprachebewertung bewertet die Aussprache und gibt den Rednern Feedback zur Genauigkeit und zum Redefluss der gesprochenen Audioinformationen.

Hinweis

Bei der Aussprachebewertung wird eine bestimmte Version des Spracherkennungsmodells verwendet, die sich vom Standardmodell für die Spracherkennung unterscheidet, um eine konsistente und genaue Aussprachebewertung sicherzustellen.

Verwenden der Aussprachebewertung im Streamingmodus

Die Aussprachebewertung unterstützt den unterbrechungsfreien Streamingmodus. Die Aufzeichnungszeit kann über das Speech-SDK unbegrenzt sein. Solange Sie die Aufzeichnung nicht beenden, wird der Auswertungsprozess nicht abgeschlossen, und Sie können die Auswertung bequem anhalten und fortsetzen.

Informationen zur Verfügbarkeit der Aussprachebewertung finden Sie unter Unterstützte Sprachen und Verfügbare Regionen.

Die Kosten für die Nutzung der Aussprachebewertung sind dieselben wie für die Spracherkennung, unabhängig davon, ob es sich um einen Tarif mit nutzungsbasierter Bezahlung oder Mindestabnahme handelt. Wenn Sie für die Spracherkennung einen Mindestabnahmetarif erwerben, werden die Ausgaben für die Aussprachebewertung auf die Erfüllung der Mindestabnahme angerechnet. Weitere Informationen finden Sie unter Preise.

Informationen zum Verwenden der Aussprachebewertung im Streamingmodus in Ihrer eigenen Anwendung finden Sie unter Beispielcode.

Informationen zum Verwenden der Aussprachebewertung im Streamingmodus in Ihrer eigenen Anwendung finden Sie unter Beispielcode.

Informationen zum Verwenden der Aussprachebewertung im Streamingmodus in Ihrer eigenen Anwendung finden Sie unter Beispielcode.

Informationen zum Verwenden der Aussprachebewertung im Streamingmodus in Ihrer eigenen Anwendung finden Sie unter Beispielcode.

Informationen zum Verwenden der Aussprachebewertung im Streamingmodus in Ihrer eigenen Anwendung finden Sie unter Beispielcode.

Informationen zum Verwenden der Aussprachebewertung im Streamingmodus in Ihrer eigenen Anwendung finden Sie unter Beispielcode.

Informationen zum Verwenden der Aussprachebewertung im Streamingmodus in Ihrer eigenen Anwendung finden Sie unter Beispielcode.

Kontinuierliche Erkennung

Wenn Ihre Audiodatei 30 Sekunden überschreitet, verwenden Sie den fortlaufenden Modus für die Verarbeitung. Den Beispielcode für den fortlaufenden Modus finden Sie auf GitHub unter der Funktion PronunciationAssessmentContinuousWithFile.

Wenn Ihre Audiodatei 30 Sekunden überschreitet, verwenden Sie den fortlaufenden Modus für die Verarbeitung.

Wenn Ihre Audiodatei 30 Sekunden überschreitet, verwenden Sie den fortlaufenden Modus für die Verarbeitung. Den Beispielcode für den fortlaufenden Modus finden Sie auf GitHub unter der Funktion pronunciationAssessmentContinuousWithFile.

Wenn Ihre Audiodatei 30 Sekunden überschreitet, verwenden Sie den fortlaufenden Modus für die Verarbeitung. Den Beispielcode für den fortlaufenden Modus finden Sie auf GitHub unter der Funktion pronunciation_assessment_continuous_from_file.

Wenn Ihre Audiodatei 30 Sekunden überschreitet, verwenden Sie den fortlaufenden Modus für die Verarbeitung. Den Beispielcode für den fortlaufenden Modus finden Sie auf GitHub.

Wenn Ihre Audiodatei 30 Sekunden überschreitet, verwenden Sie den fortlaufenden Modus für die Verarbeitung. Den Beispielcode für den fortlaufenden Modus finden Sie auf GitHub unter der Funktion pronunciationAssessFromFile.

Wenn Ihre Audiodatei 30 Sekunden überschreitet, verwenden Sie den fortlaufenden Modus für die Verarbeitung. Den Beispielcode für den fortlaufenden Modus finden Sie auf GitHub unter der Funktion continuousPronunciationAssessment.

Festlegen von Konfigurationsparametern

Hinweis

Die Aussprachebewertung ist nicht mit dem Speech SDK für Go verfügbar. Informationen zu den Konzepten finden Sie in diesem Leitfaden. Wählen Sie eine andere Programmiersprache für Ihre Lösung aus.

In SpeechRecognizer können Sie die Sprache zum Erlernen oder Üben der Ausspracheverbesserung angeben. Das Standardgebietsschema ist en-US. Wenn Sie wissen möchten, wie Sie die Lernsprache für die Bewertung der Aussprache in Ihrer eigenen Anwendung festlegen, können Sie den folgenden Beispielcode verwenden.

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)

Tipp

Wenn Sie nicht sicher sind, welches Gebietsschema für eine Sprache mit mehreren Gebietsschemas festgelegt werden soll, probieren Sie jedes Gebietsschema gesondert aus. Probieren Sie z. B. für Spanisch es-ES und es-MX aus. Bestimmen Sie, welche Gebietsschema für Ihr Szenario höher bewertet wird.

Sie müssen ein PronunciationAssessmentConfig-Objekt erstellen. Sie können EnableProsodyAssessment und EnableContentAssessmentWithTopic festlegen, um die Prosodie- und Inhaltsbewertung zu aktivieren. Weitere Informationen finden Sie unter Konfigurationsmethoden.

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

In der folgenden Tabelle sind einige der wichtigsten Konfigurationsparameter für die Aussprachebewertung aufgeführt.

Parameter BESCHREIBUNG
ReferenceText Der Text, anhand dessen die Aussprache bewertet wird.

Das ReferenceText ist optional. Legen Sie den Referenztext fest, wenn Sie eine Bewertung mit Skript zum Erlernen der Lesesprache durchführen möchten. Legen Sie den Referenztext nicht fest, wenn Sie eine Bewertung ohne Skript durchführen möchten.

Die Preisunterschiede zwischen einer Bewertung mit und ohne Skript finden Sie unter Preise.
GradingSystem Das Punktesystem zur Kalibrierung der Bewertung. FivePoint gibt einen Score als Gleitkommazahl von 0 bis 5 aus. HundredMark gibt einen Score als Gleitkommazahl von 0 bis 100 aus. Standardwert: FivePoint.
Granularity Bestimmt die niedrigste Ebene der Auswertungsgranularität. Gibt Scores für Ebenen über oder gleich dem minimalen Wert zurück. Akzeptierte Werte sind Phoneme, für das die Bewertung auf Volltext-, Wort-, Silben- und Phonemebene, Word, für das die Bewertung auf Volltext und Wortebene oder FullText, für das nur die Bewertung auf der Volltextebene angezeigt wird. Beim bereitgestellten vollständigen Referenztext kann es sich um ein Wort, einen Satz oder einen Absatz handeln. Dies hängt von Ihrem Eingabereferenztext ab. Standardwert: Phoneme.
EnableMiscue Hiermit wird eine Fehlerberechnung ermöglicht, wenn die ausgesprochenen Wörter mit dem Verweistext verglichen werden. Die Aktivierung von Fehlermeldungen ist optional. Wenn dieser Wert True ist, kann der Ergebniswert ErrorType basierend auf dem Vergleich auf Omission oder Insertion festgelegt werden. Gültige Werte sind False und True. Standardwert: False. Um die Berechnung von Fehleinsätzen zu aktivieren, legen Sie EnableMiscue auf True fest. Sie können sich an dem Codeschnipsel über der Tabelle orientieren.
ScenarioId Eine GUID für ein benutzerdefiniertes Punktesystem.

Konfigurationsmethoden

In dieser Tabelle sind einige der optionalen Methoden aufgeführt, die Sie für das PronunciationAssessmentConfig-Objekt festlegen können.

Hinweis

Inhalts- und Prosodie-Bewertungen sind nur in der Sprachversion en-US verfügbar.

Um die Inhalte und Prosodiebewertungen zu erkunden, aktualisieren Sie auf die SDK-Version 1.35.0 oder höher.

Für den Themenparameter gibt es keine Längenbeschränkung.

Methode Beschreibung
EnableProsodyAssessment Aktiviert die Prosodiebewertung für Ihre Ausspracheauswertung Diese Funktion bewertet Aspekte wie Stress, Intonation, Sprechgeschwindigkeit und Rhythmus. Diese Funktion bietet Einblicke in die Natürlichkeit und Ausdrucksfähigkeit Ihrer Sprache.

Das Aktivieren der Prosodiebewertung ist optional. Wenn diese Methode aufgerufen wird, wird der ProsodyScore-Ergebniswert zurückgegeben.
EnableContentAssessmentWithTopic Aktiviert die Inhaltsbewertung Eine Inhaltsbewertung ist Teil der Bewertung ohne Skript für das Lernszenario für gesprochene Sprache. Wenn Sie eine Beschreibung bereitstellen, können Sie das Verständnis der Bewertung für das spezifische Thema, über das gesprochen wird, verbessern. Beispiel: Rufen Sie in C# pronunciationAssessmentConfig.EnableContentAssessmentWithTopic("greeting"); auf. Sie können „greeting“ durch den gewünschten Text ersetzen, um ein Thema zu beschreiben. Die Beschreibung hat keine Längenbeschränkung und unterstützt derzeit nur das Gebietsschema en-US.

Abrufen der Ergebnisse der Aussprachebewertung

Wenn die Sprache erkannt wird, können Sie die Ergebnisse der Aussprachebewertung als SDK-Objekte oder JSON-Zeichenfolge anfordern.

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

Ergebnisse für Worte, Silben und Phoneme sind nicht über SDK-Objekte mit dem Speech SDK für C++ verfügbar. Ergebnisse für Worte, Silben und Phoneme sind nur in der JSON-Zeichenfolge verfügbar.

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

Informationen dazu, wie Sie die Lernsprache für die Bewertung der Aussprache in Ihrer eigenen Anwendung festlegen können, finden Sie im Beispielcode.

Für die Android-Anwendungsentwicklung stehen Ergebnisse für Worte, Silben und Phoneme über SDK-Objekte mit dem Speech SDK für Java zur Verfügung. Die Ergebnisse sind auch in der JSON-Zeichenfolge verfügbar. Für die JRE-Anwendungsentwicklung (Java Runtime Environment) sind Ergebnisse für Worte, Silben und Phoneme nur in der JSON-Zeichenfolge verfügbar.

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

Informationen dazu, wie Sie die Lernsprache für die Bewertung der Aussprache in Ihrer eigenen Anwendung festlegen können, finden Sie im Beispielcode.

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)

Informationen dazu, wie Sie die Lernsprache für die Bewertung der Aussprache in Ihrer eigenen Anwendung festlegen können, finden Sie im Beispielcode.

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

Informationen dazu, wie Sie die Lernsprache für die Bewertung der Aussprache in Ihrer eigenen Anwendung festlegen können, finden Sie im Beispielcode.

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)

Ergebnisparameter

Je nachdem, ob Sie eine Bewertung mit oder ohne Skript verwenden, können Sie unterschiedliche Ergebnisse bei der Bewertung der Aussprache erhalten. Die Bewertung mit Skript dient für das Sprachlernszenario „Lesen“. Die Bewertung ohne Skript dient für das Sprachlernszenario „Sprechen“.

Hinweis

Die Preisunterschiede zwischen einer Bewertung mit und ohne Skript finden Sie unter Preise.

Ergebnisse der Bewertung mit Skript

In dieser Tabelle finden Sie einige der wichtigsten Ergebnisse der Aussprachebewertung für die Bewertung mit Skript (Leseszenario).

Parameter Beschreibung Granularität
AccuracyScore Genauigkeit der Aussprache des Texts. Genauigkeit heißt dabei, wie exakt Phoneme der Aussprache eines Muttersprachlers entsprechen. Die Scores für die Silben-, Wort- und Volltextgenauigkeit werden aus dem Score der Genauigkeit auf Phonemebene aggregiert und mit Bewertungszielen verfeinert. Phonem-Ebene,
Silben-Ebene (nur en-US),
Wort-Ebene,
Volltext-Ebene
FluencyScore Redefluss eines gegebenen Texts. Der Redefluss bedeutet, wie exakt der ausgegebene Text mit den Pausen zwischen Wörtern eines Muttersprachlers übereinstimmt. Volltext-Ebene
CompletenessScore Hiermit wird die Vollständigkeit der Sprache angegeben, berechnet durch das Verhältnis von ausgesprochenen Wörtern zum Eingabeverweistext. Volltext-Ebene
ProsodyScore Prosodie eines gegebenen Texts. Die Prosodie gibt an, wie natürlich die gegebene Sprache ist, einschließlich Betonung, Intonation, Sprechgeschwindigkeit und Rhythmus. Volltext-Ebene
PronScore Der Gesamtscore der Aussprachequalität des angegebenen Sprachtexts. PronScore wird aus AccuracyScore, FluencyScore, CompletenessScore und ProsodyScore mit Gewichtung berechnet, vorausgesetzt, dass ProsodyScore und CompletenessScore verfügbar sind. Wenn eine der beiden nicht verfügbar ist, wird PronScore diese Bewertung nicht berücksichtigen. Volltext-Ebene
ErrorType Dieser Wert gibt den Fehlertyp im Vergleich mit dem Referenztext an. Zu den Optionen gehört, ob ein Wort nicht angegeben, eingefügt oder nicht ordnungsgemäß mit einer Unterbrechung eingefügt wird. Er gibt auch eine fehlende Unterbrechung bei Interpunktion an. Er zeigt auch an, ob ein Wort schlecht ausgesprochen wird oder monoton ansteigend, abfallend oder flach gesprochen wird. Die möglichen Werte sind None (kein Fehler in diesem Wort), Omission, Insertion, Mispronunciation, UnexpectedBreak, MissingBreak und Monotone. Der Fehlertyp kann Mispronunciation sein, wenn der AccuracyScore der Aussprache eines Wortes unter 60 liegt. Wort-Ebene

Ergebnisse der Bewertung ohne Skript

In dieser Tabelle finden Sie einige der wichtigsten Ergebnisse der Aussprachebewertung für die Bewertung ohne Skript (Sprechszenario).

Die Parameter VocabularyScore, GrammarScoreund TopicScore werden in der kombinierten Inhaltsbewertung zusammengefasst.

Hinweis

Inhalts- und Prosodie-Bewertungen sind nur in der Sprachversion en-US verfügbar.

Antwortparameter Beschreibung Granularität
AccuracyScore Genauigkeit der Aussprache des Texts. Genauigkeit heißt dabei, wie exakt Phoneme der Aussprache eines Muttersprachlers entsprechen. Die Scores für die Silben-, Wort- und Volltextgenauigkeit werden aus dem Score der Genauigkeit auf Phonemebene aggregiert und mit Bewertungszielen verfeinert. Phonem-Ebene,
Silben-Ebene (nur en-US),
Wort-Ebene,
Volltext-Ebene
FluencyScore Redefluss eines gegebenen Texts. Der Redefluss bedeutet, wie exakt der ausgegebene Text mit den Pausen zwischen Wörtern eines Muttersprachlers übereinstimmt. Volltext-Ebene
ProsodyScore Prosodie eines gegebenen Texts. Die Prosodie gibt an, wie natürlich die gegebene Sprache ist, einschließlich Betonung, Intonation, Sprechgeschwindigkeit und Rhythmus. Volltext-Ebene
VocabularyScore Beherrschung des lexikalischen Gebrauchs Hierbei werden der effektive Gebrauch von Wörtern durch den Sprecher und ihre Angemessenheit im gegebenen Kontext, um Ideen präzise auszudrücken, sowie das Niveau der lexikalischen Komplexität bewertet. Volltext-Ebene
GrammarScore Korrektheit bei der Verwendung von Grammatik und Vielfalt von Satzmustern. Lexikalische Genauigkeit, Grammatikgenauigkeit und Vielfalt von Satzstrukturen erhöhen zusammen grammatikalische Fehler. Volltext-Ebene
TopicScore Grad des Verständnisses und der Auseinandersetzung mit dem Thema, der Aufschluss über die Fähigkeit des Sprechers bzw. der Sprecherin gibt, seine bzw. ihre Gedanken und Ideen effektiv auszudrücken und sich mit dem Thema zu beschäftigen. Volltext-Ebene
PronScore Der Gesamtscore der Aussprachequalität des angegebenen Sprachtexts. PronScore wird aus AccuracyScore, FluencyScore und ProsodyScore mit Gewichtung berechnet, vorausgesetzt, dass ProsodyScore verfügbar ist. Wenn ProsodyScore nicht verfügbar ist, wird PronScore diese Bewertung nicht berücksichtigen. Volltext-Ebene
ErrorType Ein Wort ist schlecht ausgesprochen, nicht ordnungsgemäß mit einer Unterbrechung eingefügt, oder es fehlt bei Interpunktion eine Unterbrechung. Er gibt auch an, ob bei der Äußerung eine Aussprache monoton ansteigend, abfallend oder flach ist. Die möglichen Werte sind None (kein Fehler in diesem Wort), Mispronunciation, UnexpectedBreak, MissingBreak und Monotone. Wort-Ebene

Die folgende Tabelle beschreibt die Ergebnisse der Prosodie-Bewertung im Detail:

Feld Beschreibung
ProsodyScore Prosodie-Bewertung der gesamten Äußerung
Feedback Feedback auf Wortebene, einschließlich Break und Intonation.
Break
ErrorTypes Fehlertypen im Zusammenhang mit Unterbrechungen, einschließlich UnexpectedBreak und MissingBreak In der aktuellen Version wird der Fehlertyp Unterbrechung nicht angeboten. Sie müssen Schwellenwerte für die Felder UnexpectedBreak – Confidence und MissingBreak – confidence festlegen, um zu entscheiden, ob vor dem Wort eine unerwartete Unterbrechung vorhanden ist oder eine Unterbrechung fehlt.
UnexpectedBreak Weist auf eine unerwartete Unterbrechung vor dem Wort hin
MissingBreak Weist auf eine fehlende Unterbrechung vor dem Wort hin
Thresholds Die vorgeschlagenen Schwellenwerte für beide Konfidenzwerte liegen bei 0,75. Das bedeutet, wenn der Wert von UnexpectedBreak – Confidence größer als 0,75 ist, gibt es eine unerwartete Unterbrechung. Wenn der Wert von MissingBreak – confidence größer als 0,75 ist, fehlt die Unterbrechung. Während 0,75 ein Wert ist, der empfohlen wird, empfiehlt es sich, die Schwellenwerte basierend auf Ihrem eigenen Szenario anzupassen. Wenn Sie für diese beiden Unterbrechungen eine variable Erkennungsempfindlichkeit festlegen möchten, können Sie den Feldern UnexpectedBreak - Confidence und MissingBreak - Confidence unterschiedliche Schwellenwerte zuweisen.
Intonation Gibt die Intonation in der Sprache an
ErrorTypes Fehlertypen in Bezug auf die Intonation, die derzeit nur Monotonie unterstützen Wenn im Feld ErrorTypes die Option Monotone vorhanden ist, wird die Äußerung als monoton erkannt. Monotonie wird für die gesamte Äußerung erkannt, aber das Tag wird allen Wörtern zugewiesen. Alle Wörter in einer Äußerung haben die gleichen Informationen zur Erkennung von Monotonie.
Monotone Gibt die Sprache als monoton an
Thresholds (Monotone Confidence) Die Felder Monotone - SyllablePitchDeltaConfidence sind für die benutzerdefinierte Erkennung von Monotonie reserviert. Wenn Sie mit der vorgegebenen Entscheidung zur Monotonie nicht zufrieden sind, passen Sie die Schwellenwerte in diesen Feldern an, um die Erkennung nach Ihren Wünschen zu gestalten.

Beispiel für das JSON-Ergebnis

Die Ergebnisse der Aussprachebewertung mit Skript für das gesprochene Wort „hello“ werden im folgenden Beispiel als JSON-String angezeigt.

  • Das Phonemalphabet ist IPA.
  • Die Silben werden zusammen mit Phonemen für dasselbe Wort zurückgegeben.
  • Sie können die Werte Offset und Duration verwenden, um Silben mit den entsprechenden Phonemen abzugleichen. Der Startoffset (11700000) der zweiten Silbe (loʊ) entspricht beispielsweise dem dritten Phonem (l). Der Offset stellt die Zeit dar, zu der die erkannte Sprache im Audiostream beginnt. Der Wert wird in Einheiten von 100 Nanosekunden gemessen. Weitere Informationen zu Offset und Duration finden Sie unter Antworteigenschaften.
  • Es gibt fünf NBestPhonemes, die der Anzahl geforderter gesprochener Phoneme entsprechen.
  • Innerhalb der Phonemes war nicht das erwartete Phonem ɛ das wahrscheinlichste gesprochene Phonem, sondern ə. Das erwartete Phonem ɛ erhielt nur eine Konfidenzbewertung von 47. Andere potenzielle Übereinstimmungen erhielten Konfidenzbewertungen von 52, 17 und 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
                        }
                    ]
                }
            ]
        }
    ]
}

Scores für die Aussprachebewertung sind für Folgendes verfügbar:

  • Vollständiger Text
  • Words
  • Silbengruppen
  • Phoneme im SAPI-Format (Speech-API) oder IPA-Format (International Phonetic Alphabet, internationales phonetisches Alphabet)

Unterstützte Features pro Gebietsschema

In der folgenden Tabelle wird zusammengefasst, welche Funktionen die Gebietsschemas unterstützen. Weitere Informationen finden Sie in den folgenden Abschnitten. Wenn die benötigten Gebietsschemata für das unterstützte Feature nicht in der folgenden Tabelle aufgeführt sind, füllen Sie dieses Aufnahmeformular aus, um weitere Unterstützung zu erhalten.

Phonemalphabet IPA SAPI
Phonemname en-US en-US, zh-CN
Silbengruppe en-US en-US
Gesprochenes Phonem en-US en-US

Silbengruppen

Die Aussprachebewertung kann Ergebnisse auf Silbenebene bereitstellen. Ein Wort wird in der Regel Silbe für Silbe und nicht Phonem für Phonem gesprochen. Das Gruppieren in Silben ist besser lesbar und auf Sprechgewohnheiten abgestimmt.

Die Aussprachebewertung unterstützt silbenlose Gruppen nur in en-US mit IPA und SAPI.

In der folgenden Tabelle sehen Sie einige Beispiele für Phoneme und die entsprechenden Silben.

Beispielwort Phoneme Silben
technological teknələdʒɪkl tek·nə·lɑ·dʒɪkl
hello hɛloʊ hɛ·loʊ
luck lʌk lʌk
photosynthesis foʊtəsɪnθəsɪs foʊtəsɪnθəsɪs

Wenn Sie neben Phonemen auch Ergebnisse auf Silbenebene anfordern möchten, legen Sie den Konfigurationsparameter für die Granularität auf Phoneme fest.

Phonemalphabetformat

Die Aussprachebewertung unterstützt den Phoneme-Namen in en-US mit IPA und in en-US und zh-CN mit SAPI.

Für Gebietsschemas, die den Phonemnamen unterstützen, wird der Phonemname zusammen mit dem Score angegeben. Phonemnamen helfen bei der Identifizierung, welche Phoneme genau oder ungenau ausgesprochen wurden. Bei anderen Gebietsschemas können Sie nur den Phonemscore abrufen.

In der folgenden Tabelle sehen Sie einige Beispiele für SAPI-Phoneme und die entsprechenden IPA-Phoneme.

Beispielwort SAPI-Phoneme IPA-Phoneme
hello h eh l ow h ɛ l oʊ
luck 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

Legen Sie zum Anfordern von IPA-Phonemen das Phonemalphabet auf IPA fest. Wenn Sie das Alphabet nicht angeben, wird für Phoneme standardmäßig das SAPI-Format verwendet.

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"

Bewerten gesprochener Phoneme

Für gesprochene Phoneme können Sie Konfidenzscores abrufen, die die Wahrscheinlichkeit der Übereinstimmung zwischen den gesprochenen Phonemen und den erwarteten Phonemen angeben.

Die Aussprachebewertung unterstützt gesprochene Phoneme in en-US mit IPA und SAPI.

Um beispielsweise den vollständigen gesprochenen Sound für das Wort Hello zu erhalten, können Sie das erste gesprochene Phonem mit jedem erwarteten Phonem mit dem höchsten Konfidenzscore verketten. Wenn Sie das Wort hello sprechen, lauten die erwarteten IPA-Phoneme im folgenden Bewertungsergebnis h ɛ l oʊ. Die gesprochenen Phoneme lauten jedoch tatsächlich h ə l oʊ. In diesem Beispiel haben Sie fünf mögliche Kandidaten für jedes erwartete Phoneme. Das Bewertungsergebnis zeigt, dass das wahrscheinlichste gesprochene Phonem ə anstelle von ɛ war. Das erwartete Phonem ɛ erhielt nur eine Konfidenzbewertung von 47. Andere potenzielle Übereinstimmungen erhielten Konfidenzbewertungen von 52, 17 und 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
                        }
                    ]
                }
            ]
        }
    ]
}

Legen Sie den Parameter NBestPhonemeCount auf eine ganze Zahl fest (z. B. 5), um anzugeben, ob und für wie viele potenzielle gesprochene Phoneme Konfidenzbewertungen abgerufen werden sollen.

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

Berechnung der Aussprachebewertung

Die Wertungen der Aussprache werden durch Gewichtung der Wertungen für Genauigkeit, Prosodie, Sprachfluss und Vollständigkeit auf der Grundlage spezifischer Formeln für Lese- und Sprachszenarien berechnet.

Wenn Sie die Wertungen für Genauigkeit, Prosodie, Sprachfluss und Vollständigkeit (sofern alle Wertungen verfügbar sind) aufsteigend sortieren und die niedrigste Wertung bis zur höchsten Wertung als s0 bis s3 darstellen, wird die Aussprachebewertung wie folgt berechnet:

Für ein Leseszenario:

  • Mit Prosodiewertung: PronScore = 0,4 · s0 + 0,2 · s1 + 0.2 · s2 + 0,2 · s3
  • Ohne Prosodiewertung: PronScore = 0,6 · s0 + 0,2 · s1 + 0,2 · s2

Für das Sprachszenario (Vollständigkeitswertung gilt nicht):

  • Mit Prosodiewertung: PronScore = 0,6 · s0 + 0,2 · s1 + 0,2 · s2
  • Ohne Prodosiewertung: PronScore = 0,6 · s0 + 0,4 · s1

Diese Formel ermöglicht eine gewichtete Berechnung basierend auf der Wichtigkeit der einzelnen Wertungen und stellt dadurch eine umfassende Bewertung der Aussprache sicher.