Kiejtési értékelés használata
Ebből a cikkből megtudhatja, hogyan értékelheti ki a kiejtést a beszéd és a szöveg között a Speech SDK-n keresztül. A kiejtésértékelés kiértékeli a kiejtett beszédet, és visszajelzést ad a beszélőknek a beszéd pontosságáról és gördülékenységéről.
Feljegyzés
A kiejtés-értékelés a beszéd-szöveg modell 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.
Kiejtés-felmérés használata streamelési módban
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 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.
Alapkonfigurációként a kiejtés-felmérés használata ugyanúgy jár, mint a használatalapú fizetés vagy a kötelezettségvállalási szint díjszabása. 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ót a Díjszabás című szakasz tartalmaz.
A Pronunciation Assessment saját alkalmazásbeli streamelési módban való használatáról lásd a mintakódot.
A Pronunciation Assessment saját alkalmazásbeli streamelési módban való használatáról lásd a mintakódot.
A Pronunciation Assessment saját alkalmazásbeli streamelési módban való használatáról lásd a mintakódot.
A Pronunciation Assessment saját alkalmazásbeli streamelési módban való használatáról lásd a mintakódot.
A Pronunciation Assessment saját alkalmazásbeli streamelési módban való használatáról lásd a mintakódot.
A Pronunciation Assessment saját alkalmazásbeli streamelési módban való használatáról lásd a mintakódot.
A Pronunciation Assessment saját alkalmazásbeli streamelési módban való használatáról lásd a mintakódot.
Folyamatos felismerés
Ha a hangfájl meghaladja a 30 másodpercet, használjon folyamatos módot a feldolgozáshoz. A folyamatos mód mintakódja a GitHubon található a függvény PronunciationAssessmentContinuousWithFile
alatt.
Ha a hangfájl meghaladja a 30 másodpercet, használjon folyamatos módot a feldolgozáshoz.
Ha a hangfájl meghaladja a 30 másodpercet, használjon folyamatos módot a feldolgozáshoz. A folyamatos mód mintakódja a GitHubon található a függvény pronunciationAssessmentContinuousWithFile
alatt.
Ha a hangfájl meghaladja a 30 másodpercet, használjon folyamatos módot a feldolgozáshoz. A folyamatos mód mintakódja a GitHubon található a függvény pronunciation_assessment_continuous_from_file
alatt.
Ha a hangfájl meghaladja a 30 másodpercet, használjon folyamatos módot a feldolgozáshoz. A folyamatos mód mintakódja a GitHubon található.
Ha a hangfájl meghaladja a 30 másodpercet, használjon folyamatos módot a feldolgozáshoz. A folyamatos mód mintakódja a GitHubon található a függvény pronunciationAssessFromFile
alatt.
Ha a hangfájl meghaladja a 30 másodpercet, használjon folyamatos módot a feldolgozáshoz. A folyamatos mód mintakódja a GitHubon található a függvény continuousPronunciationAssessment
alatt.
Konfigurációs paraméterek beállítása
Feljegyzé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.
SpeechRecognizer
A 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 a spanyol, próbálja meg 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
. Beállíthatja EnableProsodyAssessment
és engedélyezheti a prosodia- és EnableContentAssessmentWithTopic
tartalomértékelést. 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();
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")
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 teljes szöveg, szó, szótag és telefonszint pontszámát jelenítik meg, Word amely a teljes szöveg és a szó szintjén jeleníti meg a pontszámot, vagy FullText a pontszámot csak a teljes szöveges szinten jeleníti meg. 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 ez az True érték, az ErrorType eredmény értéke az összehasonlítás alapján vagy Insertion az Omission alapján állítható be. Az értékek és True a False . Alapértelmezett: False . A hibás számítás engedélyezéséhez állítsa be a EnableMiscue következőt True : . A tábla feletti kódrészletre is hivatkozhat. |
ScenarioId |
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
.
Feljegyzés
A tartalom- és prózaértékelések csak az USA-beli területi beállításokban érhetők el.
A tartalom és a prózaértékelések megismeréséhez frissítsen az SDK 1.35.0-s vagy újabb verziójára.
A témakörparaméternek nincs hosszkorlátja.
Metódus | 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. |
EnableContentAssessmentWithTopic |
Engedélyezi a tartalomértékelést. A tartalomértékelés a beszédalapú nyelvtanulási forgatókönyv leíró nélküli értékelésének része. Egy leírás megadásával javíthatja az értékelés megértését az adott témakörről, amelyről beszélnek. C#-hívásban pronunciationAssessmentConfig.EnableContentAssessmentWithTopic("greeting"); például. A "köszöntés" szöveget lecserélheti a kívánt szövegre egy témakör leírásához. A leírásnak nincs hosszkorlátja, és jelenleg csak a en-US területi beállításokat támogatja. |
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);
}
A Word, a szótag és a telefon nem érhető el SDK-objektumok és a Speech SDK for C++ használatával. A Word, a szótag és a telefonszöveg eredményei 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 meg szeretné tudni, hogyan adhatja meg a kiejtés-felmérés nyelvét a saját alkalmazásában, tekintse meg a mintakódot.
Android-alkalmazásfejlesztés esetén a szó, szótag és telefonszöveg eredményei SDK-objektumokkal és a Java Speech SDK-val érhetők el. Az eredmények a JSON-sztringben is elérhetők. Java-futtatókörnyezeti (JRE) alkalmazásfejlesztés esetén a szó, szótag és telefonszöveg eredményei 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 meg szeretné tudni, hogyan adhatja meg a kiejtés-felmérés nyelvét a saját alkalmazásában, tekintse meg a mintakódot.
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 meg szeretné tudni, hogyan adhatja meg a kiejtés-felmérés nyelvét a saját alkalmazásában, tekintse meg a mintakódot.
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 meg szeretné tudni, hogyan adhatja meg a kiejtés-felmérés nyelvét a saját alkalmazásában, tekintse meg a mintakódot.
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.
Feljegyzé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 | Részletesség |
---|---|---|
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. | Telefonszint, Szótagszint (csak az USA-ban), Word-szint, Teljes szövegszint |
FluencyScore |
Az adott beszéd folyékonysága. A fluency azt jelzi, hogy a beszéd mennyire egyezik meg az natív beszélő szavak közötti csendes szüneteinek használatával. | 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 prófó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 az , , FluencyScore CompletenessScore , és ProsodyScore súly alapján van kiszámítvaAccuracyScore , feltéve, hogy ProsodyScore rendelkezésre állnak.CompletenessScore 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 az írásjelek hiányzó törést jeleznek. Azt is jelzi, hogy egy szó rosszul van-e kimondva, vagy monoton módon emelkedik, esik vagy lapos a kimondott szövegen. A lehetséges értékek None ebben a szóban, 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.
VocabularyScore
, GrammarScore
és TopicScore
a paraméterek összegződnek a kombinált tartalomértékelésben.
Feljegyzés
A tartalom- és prózaértékelések csak az USA-beli területi beállításokban érhetők el.
Válaszparaméter | Leírás | Részletesség |
---|---|---|
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. | Telefonszint, Szótagszint (csak az USA-ban), Word-szint, Teljes szövegszint |
FluencyScore |
Az adott beszéd folyékonysága. A fluency azt jelzi, hogy a beszéd mennyire egyezik meg az natív beszélő szavak közötti csendes szüneteinek használatával. | Teljes szövegszint |
ProsodyScore |
Az adott beszéd prófó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 |
VocabularyScore |
Jártasság a lexikális használatban. Kiértékeli a beszélő hatékonyan használja a szavakat, és azok megfelelőségét az adott kontextusban, hogy pontosan kifejezze elképzeléseit, és a lexikális összetettség szintjét. | Teljes szövegszint |
GrammarScore |
Helyesség a nyelvhelyesség és a különböző mondatminták használatában. A mondatszerkezetek lexikális pontossága, nyelvtani pontossága és sokfélesége együttesen emeli ki a nyelvtani hibákat. | Teljes szövegszint |
TopicScore |
A témakör megértésének és elkötelezettségének szintje, amely betekintést nyújt az előadó azon képességébe, hogy hatékonyan fejezze ki gondolatait és ötleteit, valamint hogy képes legyen kapcsolatba lépni a témával. | Teljes szövegszint |
PronScore |
Az adott beszéd kiejtési minőségének összesített pontszáma. PronScore az , FluencyScore és ProsodyScore a súly alapján van kiszámítvaAccuracyScore , 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 kimondva, nem megfelelően van beszúrva töréssel, vagy hiányzik egy írásjeltörés. Azt is jelzi, hogy a kiejtés monoton módon emelkedik, esik vagy lapos a kimondott szövegen. A lehetséges értékek None ebben a szóbanMispronunciation , , , 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 kimondott szöveg prózai 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 mezőkön UnexpectedBreak – Confidence , és MissingBreak – confidence el kell döntenie, hogy váratlan vagy hiányzó törés van-e 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óészlelési érzékenységet szeretne használni, különböző küszöbértékeket rendelhet a mezőkhöz és MissingBreak - Confidence a UnexpectedBreak - 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 a teljes kimondott szövegen monotont észlel, de a címke az összes szóhoz hozzá van rendelve. 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 fonefonok mellett ugyanahhoz a szóhoz lesznek visszaadva.
- A szótagokat és
Duration
azOffset
értékeket használhatja a szótagok és a hozzájuk tartozó fonefonok igazítására. A második szótagloʊ
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ó ésOffset
Duration
a választulajdonságok megtekintése. - A kért hanghívások számának öt
NBestPhonemes
felel meg. - Belül
Phonemes
a legvalószínűbben beszélt fofómok a várt fonálɛ
helyett .ə
A várt telefon csakɛ
47 megbízhatósági pontszámot 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:
- Teljes szöveg
- Szöveg
- Szótagcsoportok
- Fonefonok SAPI- vagy IPA-formátumban
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. Ha a szükséges területi beállítások nem szerepelnek a támogatott funkció alábbi táblázatában, további segítségért töltse ki ezt a beviteli űrlapot .
Fonetikai ábécé | IPA | SAPI |
---|---|---|
Telefonnév | en-US |
en-US , zh-CN |
Szótagcsoport | en-US |
en-US |
Beszélt telefon | en-US |
en-US |
Szótagcsoportok
A kiejtési értékelés szótagszintű értékelést adhat. A szó általában szótagként van kifejezve szótagként, nem pedig fotelmá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ó | Fonefonok | Szótagok |
---|---|---|
technológiai | teknələdʒɪkl | tek·nə·lɑ·dʒɪkl |
Üdvözöljük | hɛloʊ | hɛ·loʊ |
szerencse | lʌk | lʌk |
fotoszintézis | foʊtəsɪnθəsɪs | 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 telefonneveket az IPA-ban en-US
és az SAPI-ban en-US
és zh-CN
az SAPI-ban.
A telefonneveket támogató területi beállítások esetében a telefonnév a pontszámmal együtt lesz megadva. A telefonnevek segítenek azonosítani, hogy mely fonetikai kifejezéseket ejtették pontosan vagy pontatlanul. Más területi beállítások esetén csak a fonálpontot 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 Phonemes | IPA-fonémák |
---|---|---|
Üdvözöljük | h eh l ow | h ɛ l oʊ |
szerencse | l ah k | l ʌ k |
fotoszintézis | f ow t ax s ih n th ax s ih s | f oʊ t ə s ɪ n θ ə s ɪ s |
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 hanghívások értékelése
A beszélt telefonnal megbízhatósági pontszámokat kaphat, amelyek jelzik, hogy a beszélt fotelek milyen valószínűséggel felelnek meg a várt fonefonoknak.
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, összefűzheti az első beszélt telefonhangot minden várt telefonhoz a legmagasabb megbízhatósági pontszámmal. A következő értékelési eredményben, amikor kimondja a szót hello
, a várt IPA-fonémák lesznek h ɛ l oʊ
. A tényleges beszélt telefonhangok azonban a következők h ə l oʊ
: . Ebben a példában öt lehetséges jelöltje van minden várható telefonhoz. Az értékelés eredménye azt mutatja, hogy a legvalószínűbb beszélt telefonhang ə
volt a várt fonál ɛ
helyett. A várt telefon csak ɛ
47 megbízhatósági pontszámot 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éhez, hogy a megbízhatósági pontszámok lekéréséhez és hány lehetséges beszélt fotelhez á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óditás, a folyékonyság és a teljesség pontszámának alacsonyról magasra történő rendezésekor (ha minden pontszám elérhető), és a legalacsonyabb pontszámot a legmagasabb pontszámra 0-tól s3-ra jelölő értékre rendezi, a kiejtési pontszám kiszámítása az alábbiak szerint történik:
Olvasási forgatókönyv esetén:
- 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ó):
- 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.
Kapcsolódó tartalom
- Ismerje meg a minőségi teljesítménytesztet.
- Próbálja ki a kiejtési értékelést a stúdióban.
- Tekintse meg a könnyen üzembe helyezhető kiejtésértékelési bemutatót.
- Tekintse meg a kiejtési felmérés videós bemutatóját .