Kiejtési értékelés használata

Ebből a cikkből megtudhatja, hogyan értékelheti ki egy felhasználó beszéd kiejtését a Speech SDK-ban a beszédfelolvasással. A kiejtési értékelés visszajelzést ad a beszélőknek a beszélt hang pontosságáról és folyékonyságáról.

Megjegyzés

A kiejtés-értékelés a beszéd és a szövegmodell egy adott verzióját használja, amely eltér a hagyományos beszédtől a szövegmodellig, így egységes és pontos kiejtési értékelést biztosít.

Rendelkezésre állás és díjszabás

A kiejtési értékelés elérhetőségéről további információt a támogatott nyelvek és az elérhető régiók című témakörben talál.

Alapértelmezésként a kiejtés-értékelés használata ugyanannyiba kerül, mint a beszéd szöveggé alakítása a standard vagy a kötelezettségvállalási szintű tarifacsomag esetén. Ha a szöveghez való beszédhez egy kötelezettségvállalási szintet vásárol , a kiejtési értékelésre fordított költség a kötelezettségvállalás teljesítésére irányul. További információ: Díjszabás.

Streamelés és folyamatos mód

A kiejtés értékelése támogatja a folyamatos streamelési módot. A rögzítési idő korlátlan lehet a Speech SDK-val. Amíg nem állítja le a felvételt, a kiértékelési folyamat nem fejeződik be, és kényelmesen szüneteltetheti és folytathatja az értékelést.

A Pronunciation Assessment saját alkalmazásbeli streamelési módban való használatáról a sample kód című témakörben olvashat.

A Pronunciation Assessment saját alkalmazásbeli streamelési módban való használatáról a sample kód című témakörben olvashat.

A Pronunciation Assessment saját alkalmazásbeli streamelési módban való használatáról a sample kód című témakörben olvashat.

A Pronunciation Assessment saját alkalmazásbeli streamelési módban való használatáról a sample kód című témakörben olvashat, vagy kipróbálhatja a Azure Speech in Foundry Tools Toolkit.

A Pronunciation Assessment saját alkalmazásbeli streamelési módban való használatáról a sample kód című témakörben olvashat.

A Pronunciation Assessment saját alkalmazásbeli streamelési módban való használatáról a sample kód című témakörben olvashat.

A Pronunciation Assessment saját alkalmazásbeli streamelési módban való használatáról a sample kód című témakörben olvashat.

Ha a hangfájl meghaladja a 30 másodpercet, használjon folyamatos módot a feldolgozáshoz. Folyamatos módban a EnableMiscue beállítás nem támogatott. A Omission és Insertion címkék megszerzéséhez összehasonlítani szükséges a felismert eredményeket a referenciaszöveggel. A GitHub a PronunciationAssessmentContinuousWithFile függvény alatt talál egy minta implementációt a folyamatos módhoz.

Ha a hangfájl meghaladja a 30 másodpercet, használjon folyamatos módot a feldolgozáshoz. Folyamatos módban a EnableMiscue beállítás nem támogatott. A Omission és Insertion címkék megszerzéséhez összehasonlítani szükséges a felismert eredményeket a referenciaszöveggel.

Ha a hangfájl meghaladja a 30 másodpercet, használjon folyamatos módot a feldolgozáshoz. Folyamatos módban a EnableMiscue beállítás nem támogatott. A Omission és Insertion címkék megszerzéséhez összehasonlítani szükséges a felismert eredményeket a referenciaszöveggel. A GitHub a pronunciationAssessmentContinuousWithFile függvény alatt talál egy minta implementációt a folyamatos módhoz.

Ha a hangfájl meghaladja a 30 másodpercet, használjon folyamatos módot a feldolgozáshoz. Folyamatos módban a EnableMiscue beállítás nem támogatott. A Omission és Insertion címkék megszerzéséhez összehasonlítani szükséges a felismert eredményeket a referenciaszöveggel. A GitHubpronunciation_assessment_continuous_from_file függvény alatt talál egy minta implementációt a folyamatos módhoz, vagy kipróbálhatja a Azure Speech Toolkit.

Ha a hangfájl meghaladja a 30 másodpercet, használjon folyamatos módot a feldolgozáshoz. Folyamatos módban a EnableMiscue beállítás nem támogatott. A Omission és Insertion címkék megszerzéséhez összehasonlítani szükséges a felismert eredményeket a referenciaszöveggel. A GitHub a folyamatos mód minta implementációja is megtalálható.

Ha a hangfájl meghaladja a 30 másodpercet, használjon folyamatos módot a feldolgozáshoz. Folyamatos módban a EnableMiscue beállítás nem támogatott. A Omission és Insertion címkék megszerzéséhez összehasonlítani szükséges a felismert eredményeket a referenciaszöveggel. A GitHub a pronunciationAssessFromFile függvény alatt talál egy minta implementációt a folyamatos módhoz.

Ha a hangfájl meghaladja a 30 másodpercet, használjon folyamatos módot a feldolgozáshoz. Folyamatos módban a EnableMiscue beállítás nem támogatott. A Omission és Insertion címkék megszerzéséhez összehasonlítani szükséges a felismert eredményeket a referenciaszöveggel. A GitHub a continuousPronunciationAssessment függvény alatt talál egy minta implementációt a folyamatos módhoz.

Ha a hangfájl meghaladja a 30 másodpercet, használjon folyamatos módot a feldolgozáshoz. Vegye figyelembe, hogy a Kiejtési felmérés nem támogatott a Speech SDK for Go alkalmazásban. A funkció engedélyezéséhez válasszon egy másik programozási nyelvet a megoldáshoz.

Konfigurációs paraméterek beállítása

Megjegyzés

A kiejtési értékelés nem érhető el a Speech SDK for Go használatával. A fogalmakról ebben az útmutatóban olvashat. Válasszon másik programozási nyelvet a megoldáshoz.

SpeechRecognizerA nézetben megadhatja a megtanulandó nyelvet, vagy gyakorolhatja a kiejtés javítását. Az alapértelmezett területi beállítás a következő en-US. Ha meg szeretné tudni, hogyan adhatja meg a kiejtés-felmérés nyelvét a saját alkalmazásában, az alábbi mintakódot használhatja.

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

Ha nem biztos abban, hogy melyik területi beállítás legyen beállítva egy több területi beállítással rendelkező nyelvhez, próbálja meg külön-külön az egyes területi beállításokat. Például spanyolul próbáld ki es-ES és es-MX. Határozza meg, hogy melyik területi pontszám magasabb a forgatókönyvhöz.

Létre kell hoznia egy objektumot PronunciationAssessmentConfig . EnableProsodyAssessment Beállíthatja a prosodiaértékelés engedélyezését. További információkért lásd a konfigurációs módszereket.

var pronunciationAssessmentConfig = new PronunciationAssessmentConfig(
    referenceText: "",
    gradingSystem: GradingSystem.HundredMark,
    granularity: Granularity.Phoneme,
    enableMiscue: false);
pronunciationAssessmentConfig.EnableProsodyAssessment();
auto pronunciationConfig = PronunciationAssessmentConfig::Create("", PronunciationAssessmentGradingSystem::HundredMark, PronunciationAssessmentGranularity::Phoneme, false);
pronunciationConfig->EnableProsodyAssessment();
PronunciationAssessmentConfig pronunciationConfig = new PronunciationAssessmentConfig("",
    PronunciationAssessmentGradingSystem.HundredMark, PronunciationAssessmentGranularity.Phoneme, false);
pronunciationConfig.enableProsodyAssessment();
pronunciation_config = speechsdk.PronunciationAssessmentConfig(
    reference_text="",
    grading_system=speechsdk.PronunciationAssessmentGradingSystem.HundredMark,
    granularity=speechsdk.PronunciationAssessmentGranularity.Phoneme,
    enable_miscue=False)
pronunciation_config.enable_prosody_assessment()
var pronunciationAssessmentConfig = new sdk.PronunciationAssessmentConfig(
    referenceText: "",
    gradingSystem: sdk.PronunciationAssessmentGradingSystem.HundredMark,
    granularity: sdk.PronunciationAssessmentGranularity.Phoneme,
    enableMiscue: false);
pronunciationAssessmentConfig.enableProsodyAssessment();
SPXPronunciationAssessmentConfiguration *pronunicationConfig =
[[SPXPronunciationAssessmentConfiguration alloc] init:@"" gradingSystem:SPXPronunciationAssessmentGradingSystem_HundredMark granularity:SPXPronunciationAssessmentGranularity_Phoneme enableMiscue:false];
[pronunicationConfig enableProsodyAssessment];
let pronAssessmentConfig = try! SPXPronunciationAssessmentConfiguration("",
    gradingSystem: .hundredMark,
    granularity: .phoneme,
    enableMiscue: false)
pronAssessmentConfig.enableProsodyAssessment()

Ez a táblázat felsorolja a kiejtés-értékelés néhány kulcsfontosságú konfigurációs paraméterét.

Paraméter Leírás
ReferenceText Az a szöveg, amely alapján a kiejtés kiértékelése történik.

A ReferenceText paraméter megadása nem kötelező. Állítsa be a referenciaszöveget, ha szkriptes értékelést szeretne futtatni az olvasási nyelvtanulási forgatókönyvhöz. Ne állítsa be a referenciaszöveget, ha íratlan értékelést szeretne futtatni.

A szkriptelt és a nem leíró értékelés közötti díjszabási különbségekért lásd: Díjszabás.
GradingSystem A pontrendszer a pontszám-kalibrációhoz. FivePoint 0-5 lebegőpontos pontszámot ad. HundredMark 0–100 lebegőpontos pontszámot ad. Alapértelmezett: FivePoint.
Granularity A kiértékelési részletesség legalacsonyabb szintjét határozza meg. A minimális értéknél nagyobb vagy egyenlő szintek pontszámait adja vissza. Az elfogadott értékek a Phoneme, amely a teljes szöveg, a szó, a szótag és a fonéma szintjén mutatja a pontszámot, a Word, amely a teljes szöveg és a szó szintjén teszi ezt, vagy a FullText, amely csak a teljes szöveg szintjén jeleníti meg a pontszámot. A megadott teljes hivatkozási szöveg lehet szó, mondat vagy bekezdés. Ez a bemeneti referenciaszövegtől függ. Alapértelmezett: Phoneme.
EnableMiscue Lehetővé teszi a hibás számítást, ha a kimondott szavakat a referenciaszöveghez hasonlítják. A hibás adatok engedélyezése nem kötelező. Ha az True érték, akkor az ErrorType eredmény értékét az összehasonlítás alapján Omission-re vagy Insertion-re lehet beállítani. Az értékek False és True. Alapértelmezett: False. A számítási hibát lehetővé tévő mód engedélyezéséhez állítsa be a EnableMiscue -t True értékre. A tábla feletti kódrészletre is hivatkozhat.
ScenarioId Egy GUID egy testre szabott pontrendszerhez.

Konfigurációs módszerek

Ez a táblázat felsorolja az objektumhoz megadható választható módszerek némelyikét PronunciationAssessmentConfig .

Megjegyzés

A hangzó jellemzők értékelése csak a en-US helyi beállításban érhető el.

A prosodiaértékelés megismeréséhez frissítsen az SDK 1.35.0-s vagy újabb verziójára.

Módszer Leírás
EnableProsodyAssessment Lehetővé teszi a proszódiák kiértékelését a kiejtési értékeléshez. Ez a funkció olyan szempontokat értékel fel, mint a stressz, az intonáció, a beszédsebesség és a ritmus. Ez a funkció betekintést nyújt a beszéd természetességébe és kifejezőképességébe.

A prosodiaértékelés engedélyezése nem kötelező. A metódus meghívása esetén a függvény visszaadja az ProsodyScore eredményértéket.

Kiejtési értékelés eredményeinek lekérése

A beszéd felismerésekor SDK-objektumként vagy JSON-sztringként kérheti le a kiejtési értékelés eredményeit.

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

Szó, szótag- és fonémaeredmények nem érhetők el, ha a C++-hoz tartozó Speech SDK objektumait használja. Word, szótag- és fonáleredmények csak a JSON-sztringben érhetők el.

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

Ha szeretné megtudni, hogyan adhatja meg a kiejtés-felmérés nyelvét a saját alkalmazásában, tekintse meg sample code.

Android-alkalmazások fejlesztéséhez a szóra, szótagra és fonémára vonatkozó eredmények elérhetők SDK-objektumok segítségével a Java-hoz készült Speech SDK-val. Az eredmények a JSON-sztringben is elérhetők. A Java futtatókörnyezet (JRE) alkalmazásfejlesztéséhez a szó-, a szótag- és a fonémaeredmények csak a JSON-sztringben érhetők el.

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

Ha szeretné megtudni, hogyan adhatja meg a kiejtés-felmérés nyelvét a saját alkalmazásában, tekintse meg sample code.

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)

Ha szeretné megtudni, hogyan adhatja meg a kiejtés-felmérés nyelvét a saját alkalmazásában, tekintse meg sample code.

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

Ha szeretné megtudni, hogyan adhatja meg a kiejtés-felmérés nyelvét a saját alkalmazásában, tekintse meg sample code.

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)

Eredményparaméterek

Attól függően, hogy szkriptes vagy nem indexelt értékelést használ, különböző kiejtésértékelési eredményeket kaphat. A szkriptelt értékelés az olvasási nyelvtanulási forgatókönyvhöz készült. A nem leíró értékelés a beszélő nyelvtanulási forgatókönyvhöz tartozik.

Megjegyzés

A szkriptelt és a nem leíró értékelés közötti díjszabási különbségekért lásd: Díjszabás.

Szkriptelt értékelés eredményei

Ez a táblázat felsorolja a szkriptelt értékelés vagy olvasási forgatókönyv legfontosabb kiejtési értékelési eredményeit.

Paraméter Leírás Granularitás
AccuracyScore A beszéd kiejtési pontossága. A pontosság azt jelzi, hogy a fonimok milyen közel felelnek meg egy natív beszélő kiejtésének. A szótag-, szó- és teljes szöveges pontossági pontszámokat a rendszer a fonetikai szintű pontossági pontszámból összesíti, és az értékelési célokkal pontosítja. Fonémaszint
Szótagszint (csak en-US)
Szószint
Teljes szövegszint
FluencyScore Az adott beszéd folyékonysága. A folyékonyság azt jelzi, hogy a beszéd mennyire hasonlít egy natív beszélő szavak közötti csendes szüneteinek használatára. Teljes szövegszint
CompletenessScore A beszéd teljessége, a kimondott szavak és a bemeneti referenciaszöveg arányával számítva. Teljes szövegszint
ProsodyScore Az adott beszéd prozódiája. A prosodia azt jelzi, hogy mennyire természetes az adott beszéd, beleértve a stresszt, az intonációt, a beszéd sebességét és a ritmust. Teljes szövegszint
PronScore Az adott beszéd kiejtési minőségének összesített pontszáma. PronScore kiszámításra kerül AccuracyScore, FluencyScore, CompletenessScore, és ProsodyScore súly alapján, feltéve, hogy ProsodyScore és CompletenessScore rendelkezésre állnak. Ha egyik sem érhető el, PronScore nem veszi figyelembe ezt a pontszámot. Teljes szövegszint
ErrorType Ez az érték a hivatkozás szövegéhez viszonyított hibatípust jelzi. A beállítások közé tartozik, hogy egy szó kihagyva, beszúrva vagy helytelenül van-e beszúrva töréssel. Azt is jelzi, hogy hiányzik egy törés az írásjeleknél. Azt is jelzi, hogy egy szó rosszul van-e kiejtve, vagy monoton módon nő, csökken vagy lapos a hangzás. A lehetséges értékek None ennek a szónak a hibamentességére vonatkozóan, Omission, Insertion, Mispronunciation, UnexpectedBreak, MissingBreak és Monotone. A hibatípus akkor lehet Mispronunciation , ha egy szó kiejtése AccuracyScore 60 alatt van. Word szint

Nem leíró értékelés eredményei

Ez a táblázat felsorolja a nem leíró értékelés vagy beszédforgatókönyv legfontosabb kiejtési értékelési eredményeit.

Megjegyzés

A hangzó jellemzők értékelése csak a en-US helyi beállításban érhető el. A leíró nélküli értékelés esetében a használt beszédfelismerési (STT) modell eltér Azure STT-től. Ha nagyon pontos felismert szövegen alapuló értékelésre van szüksége, javasoljuk, hogy először hívja meg Azure STT-t a referenciaszöveg beszerzéséhez, majd végezze el a szkriptes értékelést.

Válaszparaméter Leírás Granularitás
AccuracyScore A beszéd kiejtési pontossága. A pontosság azt jelzi, hogy a fonimok milyen közel felelnek meg egy natív beszélő kiejtésének. A szótag-, szó- és teljes szöveges pontossági pontszámokat a rendszer a fonetikai szintű pontossági pontszám alapján összesíti, és az értékelési célokkal pontosítja. Fonémaszint
Szótagszint (csak en-US)
Szószint
Teljes szövegszint
FluencyScore Az adott beszéd folyékonysága. A folyékonyság azt jelzi, hogy a beszéd mennyire hasonlít egy natív beszélő szavak közötti csendes szüneteinek használatára. Teljes szövegszint
ProsodyScore Az adott beszéd prozódiája. A prosodia azt jelzi, hogy mennyire természetes az adott beszéd, beleértve a stresszt, az intonációt, a beszéd sebességét és a ritmust. Teljes szövegszint
PronScore Az adott beszéd kiejtési minőségének összesített pontszáma. PronScore a AccuracyScore, FluencyScore és a ProsodyScore súly alapján van kiszámítva, feltéve, hogy ProsodyScore elérhető. Ha ProsodyScore nem érhető el, PronScore akkor ezt a pontszámot nem veszi figyelembe. Teljes szövegszint
ErrorType Egy szó rosszul van kiejtve, helytelenül van elválasztva, vagy hiányzik előttük egy írásjel okozta szünet. Azt is jelzi, hogy a kiejtés emelkedő, ereszkedő vagy egyenletes a kimondott szöveg során. A lehetséges értékek: None (nincs hiba), Mispronunciation, UnexpectedBreak, MissingBreak és Monotone. Word szint

Az alábbi táblázat részletesebben ismerteti a prosodiaértékelés eredményeit:

Mező Leírás
ProsodyScore A teljes megnyilatkozás prosódiai pontszáma.
Feedback Visszajelzés a szó szintjén, beleértve Break és Intonation.
Break
ErrorTypes Törésekkel kapcsolatos hibatípusok, beleértve UnexpectedBreak és MissingBreak. Az aktuális verzió nem adja meg a törési hiba típusát. Meg kell adnia a küszöbértékeket a UnexpectedBreak – Confidence és MissingBreak – confidence mezőkön annak eldöntéséhez, hogy van-e váratlan vagy hiányzó törés a szó előtt.
UnexpectedBreak Váratlan törést jelez a szó előtt.
MissingBreak Hiányzó törést jelez a szó előtt.
Thresholds Mindkét megbízhatósági pontszám javasolt küszöbértékei 0,75. Ez azt jelenti, hogy ha az érték UnexpectedBreak – Confidence nagyobb, mint 0,75, váratlan törést eredményez. Ha az érték MissingBreak – confidence nagyobb, mint 0,75, akkor hiányzik a törés. Bár a 0,75 egy ajánlott érték, érdemes a küszöbértékeket a saját forgatókönyve alapján módosítani. Ha ezen a két törésen változó érzékenységű észlelést szeretne alkalmazni, különböző küszöbértékeket rendelhet az UnexpectedBreak - Confidence és a MissingBreak - Confidence mezőkhöz.
Intonation Intonációt jelez a beszédben.
ErrorTypes Az intonációhoz kapcsolódó hibatípusok, amelyek jelenleg csak a Monotone-t támogatják. Ha a Monotone szöveg szerepel a mezőben ErrorTypes, a kimondott szöveg monoton lesz. A rendszer az egész kimondott szövegben monotont észlel, de a címkét minden szóhoz hozzárendelik. Az ugyanabban a kimondott szövegben lévő összes szó ugyanazt a monoton észlelési információt tartalmazza.
Monotone Monoton beszédet jelez.
Thresholds (Monotone Confidence) A mezők Monotone - SyllablePitchDeltaConfidence a felhasználó által testre szabott monoton észleléshez vannak fenntartva. Ha nincs megelégedve a megadott monoton döntéssel, módosítsa a mezők küszöbértékeit, hogy a beállításoknak megfelelően testre szabja az észlelést.

Példa JSON-eredményre

Az alábbi példában a "hello" kimondott szóhoz írt kiejtési értékelés eredménye JSON-sztringként jelenik meg.

  • A fonetikai ábécé az IPA.
  • A szótagok a fonémák mellett ugyanahhoz a szóhoz visszakerülnek.
  • A Offset és Duration értékeket használhatja a szótagok és a hozzájuk tartozó fonémák igazítására. A második szótag loʊ kezdő eltolása (11700000) például a harmadik fonáléhoz igazodik. l Az eltolás azt az időpontot jelöli, amikor a felismert beszéd megkezdődik a hangstreamben. Az érték mérése 100 nanoszekundumos egységekben történik. További információkért a Offset és Duration témakörében tekintse meg a választulajdonságokat.
  • Öt NBestPhonemes felel meg a kért kibeszélt fonémák számának.
  • Belül Phonemes a legvalószínűbben kimondott fonémákə voltak a várt fonéma ɛ helyett. A várt fonéma csak ɛ 47 bizalmi értéket kapott. Más potenciális találatok 52, 17 és 2 megbízhatósági pontszámot kaptak.
{
    "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
                        }
                    ]
                }
            ]
        }
    ]
}

A kiejtési értékelési pontszámokat a következőhöz érheti el:

Támogatott funkciók területi beállítások szerint

Az alábbi táblázat összefoglalja, hogy mely funkciók támogatottak. További információkért tekintse meg a következő szakaszokat.

Fonetikai ábécé IPA SAPI
Fonéma név en-US en-US, zh-CN
Szótagcsoport en-US en-US
Beszélt fonéma en-US en-US

Szótagcsoportok

A kiejtési értékelés szótagszintű értékelést adhat. Egy szót általában szótagonként ejtenek ki, nem pedig fonémánként. A szótagok csoportosítása olvashatóbb, és igazodik a beszélő szokásokhoz.

A kiejtési értékelés csak az IPA-val és az SAPI-val támogatja a en-US szótagcsoportokat.

Az alábbi táblázat összehasonlítja a példa fotelmákat a megfelelő szótagokkal.

Mintaszó Fonémák Szótagok
Technológiai teknələdʒɪkl tek·nə·lɑ·dʒɪkl
helló helló hello
Szerencse lʌk lʌk
Fotoszintézis fotoszintézis foʊ·tə·sɪn·θə·sɪs

Ha szótagszintű eredményeket szeretne lekérni a fonefonokkal együtt, állítsa a részletességi konfigurációs paramétert a következőre Phoneme: .

Fonetikai ábécé formátuma

A kiejtési értékelés támogatja a fonéma neveket az IPA segítségével a en-US-ban és az SAPI segítségével a en-US-ban és zh-CN-ban.

A fonémanevet támogató nyelvi beállítások esetében a fonémanév a pontszámmal együtt van feltüntetve. A fonémanevek segítenek azonosítani, hogy mely fonémákat ejtették pontosan vagy pontatlanul. Más területi beállítások esetén csak a fonéma pontszámot kaphatja meg.

Az alábbi táblázat összehasonlítja a példa SAPI-fonémákat a megfelelő IPA-fonémákkal.

Mintaszó SAPI fonémák IPA-fonémák
helló h eh l ow hello
Szerencse l ah k l ʌ k
Fotoszintézis f ow t ax s ih n th ax s ih s fotoszintézis

Az IPA-fonémák kéréséhez állítsa a fonéma ábécét a következőre IPA: . Ha nem adja meg az ábécét, a fonetikusok alapértelmezés szerint SAPI formátumban vannak.

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"

Beszélt fonémák értékelése

A beszélt fonémákkal megbízhatósági pontszámokat kaphat, amelyek jelzik, hogy a beszélt fonémák milyen valószínűséggel felelnek meg a várt fonémáknak.

A kiejtési értékelés támogatja a beszélt fonémákat az IPA-val en-US és az SAPI-val.

Ha például a szó Hello teljes beszélt hangját szeretné megkapni, akkor a legmagasabb megbízhatósági pontszámú fonémával kezdődve fonémánként összefűzheti a beszélt fonémát minden várt fonémához. A következő értékelési eredményben amikor kimondja a(z) hello szót, a várt IPA-fonémák a h ɛ l oʊ lesznek. A tényleges beszélt fonémák azonban a következők h ə l oʊ. Ebben a példában öt lehetséges jelöltje van minden egyes elvárt fonémához. Az értékelés eredménye azt mutatja, hogy a legvalószínűbb beszélt fonéma ə volt a várt fonéma ɛ helyett. A várt fonéma csak ɛ 47 bizalmi értéket kapott. Más potenciális találatok 52, 17 és 2 megbízhatósági pontszámot kaptak.

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

Annak jelzésére, hogy kapjon megbízhatósági pontszámokat, és hány lehetséges beszélt fonéma esetén, állítsa be a NBestPhonemeCount paramétert egész számra, például 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

Kiejtési pontszám kiszámítása

A kiejtési pontszámokat a pontosság, a proszóditás, a folyékonyság és a teljességi pontszámok súlyozásával számítjuk ki az olvasási és beszédes forgatókönyvek adott képletei alapján.

A pontosság, a proszódia, a folyékonyság és a teljesség pontszámainak alacsonyról magasra történő rendezésekor (ha minden pontszám elérhető), és a legalacsonyabb pontszámtól a legmagasabbig s0-tól s3-ig történő jelöléssel, a kiejtési pontszám kiszámítása az alábbiak szerint történik:

Olvasási forgatókönyv esetén:

  • Prosódia pontszám: PronScore = 0,4 * s0 + 0,2 * s1 + 0,2 * s2 + 0,2 * s3
  • Prosody pontszám nélkül: PronScore = 0,6 * s0 + 0,2 * s1 + 0,2 * s2

A beszélő forgatókönyv esetében (a teljességi pontszám nem alkalmazható):

  • A prozódiával kapcsolatos pontszámmal: PronScore = 0,6 * s0 + 0,2 * s1 + 0,2 * s2
  • Prosody pontszám nélkül: PronScore = 0,6 * s0 + 0,4 * s1

Ez a képlet az egyes pontszámok fontossága alapján súlyozott számítást biztosít, amely biztosítja a kiejtés átfogó kiértékelését.

Tartalomértékelés

Fontos

A tartalomértékelés (előzetes verzió) ki van állítva a Speech SDK 1.46.0-s és újabb verzióiból. Alternatív megoldásként Azure OpenAI-t használhatja Microsoft Öntödei modellekben a tartalomértékelési eredmények lekéréséhez az ebben a szakaszban leírtak szerint.

Néhány felismert beszéd esetén érdemes lehet tartalomértékelési eredményeket is kapni a szókincs, a nyelvhelyesség és a témakör relevanciája szempontjából. A tartalomértékelési eredmények lekéréséhez használhat csevegőmodellt, például Azure OpenAI gpt-4o. További információ a csevegési modellek használatáról: Azure OpenAI-modellek és az Azure AI-modell következtetési API chat-kiegészítések referenciadokumentációja.

A rendszer a felhasználói és a rendszerüzeneteket használja a csevegési modell környezetének beállításához. Az alábbi példában a felhasználói üzenet tartalmazza az értékelendő esszét, a rendszerüzenet pedig útmutatást nyújt az esszé kiértékeléséhez.

{
  "messages": [
    {
      "role": "system",
      "content": "You are an English teacher and please help to grade a student's essay from vocabulary and grammar and topic relevance on how well the essay aligns with the title, and output format as: {\"vocabulary\": *.*(0-100), \"grammar\": *.*(0-100), \"topic\": *.*(0-100)}."
    },
    {
      "role": "user",
      "content": "Example1: this essay: \"sampleSentence1\" has vocabulary and grammar scores of ** and **, respectively. Example2: this essay: \"sampleSentence2\" has vocabulary and grammar scores of ** and **, respectively. Example3: this essay: \"sampleSentence3\" has vocabulary and grammar scores of ** and **, respectively. The essay for you to score is \"sendText\", and the title is \"topic\". The transcript is from speech recognition so that please first add punctuations when needed, remove duplicates and unnecessary un uh from oral speech, then find all the misuse of words and grammar errors in this essay, find advanced words and grammar usages, and finally give scores based on this information. Please only respond as this format {\"vocabulary\": *.*(0-100), \"grammar\": *.*(0-100)}, \"topic\": *.*(0-100)}. [THE TRANSCRIPT FROM SPEECH RECOGNITION IS REDACTED FOR BREVITY]"
    }
  ]
}