Использование оценки произношения
В этой статье вы узнаете, как оценить произношение с речью в тексте с помощью пакета SDK службы "Речь". Оценка произношения представляет собой оценку речи и предоставляет говорящим отзывы о точности и владении языком лица, чья речь записана в формате аудио.
Использование оценки произношения в режиме потоковой передачи
Оценка произношения поддерживает непрерывный режим потоковой передачи. Время записи может быть неограниченно через пакет SDK службы "Речь". Пока вы не останавливаете запись, процесс оценки не завершается, и вы можете приостановить и возобновить оценку удобно.
Сведения о доступности оценки произношения см. на страницах со списками поддерживаемых языков и доступных регионов.
В качестве базового плана использование оценки произношения стоит так же, как речь в тексте для оплаты по мере использования или цен на категории обязательств. Если вы приобрели уровень обязательств для преобразования речи в текст, расходы на оценку произношения идет к достижению приверженности. Дополнительные сведения см. на странице цен.
Сведения об использовании оценки произношения в режиме потоковой передачи в собственном приложении см . в примере кода.
Сведения об использовании оценки произношения в режиме потоковой передачи в собственном приложении см . в примере кода.
Сведения об использовании оценки произношения в режиме потоковой передачи в собственном приложении см . в примере кода.
Сведения об использовании оценки произношения в режиме потоковой передачи в собственном приложении см . в примере кода.
Сведения об использовании оценки произношения в режиме потоковой передачи в собственном приложении см . в примере кода.
Сведения об использовании оценки произношения в режиме потоковой передачи в собственном приложении см . в примере кода.
Сведения об использовании оценки произношения в режиме потоковой передачи в собственном приложении см . в примере кода.
Настройка параметров конфигурации
Примечание.
Оценка произношения недоступна в пакете SDK службы "Речь" для Go. Вы можете ознакомиться с основными понятиями в этом руководстве. Выберите другой язык программирования для решения.
В этом SpeechRecognizer
разделе можно указать язык для изучения или практики улучшения произношения. Языковой стандарт по умолчанию .en-US
Чтобы узнать, как указать язык обучения для оценки произношения в собственном приложении, см . пример кода.
Совет
Если вы не уверены, какой языковой стандарт следует задать для языка с несколькими языковыми стандартами, попробуйте использовать каждый языковой стандарт отдельно. Например, для испанского языка попробуйте es-ES
и es-MX
. Определите, какие оценки языкового стандарта выше для вашего сценария.
Необходимо создать PronunciationAssessmentConfig
объект. Вы можете задать EnableProsodyAssessment
и EnableContentAssessmentWithTopic
включить оценку prosody и содержимого. Дополнительные сведения см. в разделе "Методы конфигурации".
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")
Данная таблица содержит несколько основных параметров конфигурации для оценки произношения.
Параметр | Описание |
---|---|
ReferenceText |
Текст, на который вычисляется произношение. Параметр ReferenceText является необязательным. Задайте справочный текст, если требуется выполнить оценку скрипта для сценария обучения языка чтения. Не устанавливайте текст ссылки, если вы хотите выполнить нескрипированную оценку.Различия в ценах между скриптами и неписаной оценкой см. в разделе "Цены". |
GradingSystem |
Система баллов для калибровки оценок. FivePoint дает оценку с плавающей запятой от 0 до 5. HundredMark дает оценку с плавающей запятой от 0 до 100. По умолчанию: FivePoint . |
Granularity |
Определяет самый низкий уровень детализации оценки. Возвращает оценки для уровней, превышающих или равных минимальному значению. Допустимые значения: Phoneme оценка на полном тексте, слове, слоге и фонеме Word , которая показывает оценку на уровне полнотекстового и текстового уровня, или FullText , где отображается оценка только на уровне полного текста. Предоставленный полный текст ссылки может быть словом, предложением или абзацем. Он зависит от текста вводимых ссылок. По умолчанию: Phoneme . |
EnableMiscue |
Включает вычисление оговорок при сравнении произнесенных слов с эталонным текстом. Включение несоответствия является необязательным. Если это значение равно True , результатом ErrorType на основе сравнения может быть установлено значение Omission или Insertion . Значения: False и True . По умолчанию: False . Чтобы включить вычисление несоответствия, задайте для нее EnableMiscue значение True . Вы можете ссылаться на фрагмент кода под таблицей. |
ScenarioId |
GUID для настраиваемой системы точек. |
Методы конфигурации
В этой таблице перечислены некоторые необязательные методы, которые можно задать для PronunciationAssessmentConfig
объекта.
Примечание.
Оценки содержимого и просодий доступны только в языковом стандарте en-US .
Чтобы изучить содержимое и оценки prosody, обновите пакет SDK версии 1.35.0 или более поздней.
Метод | Description |
---|---|
EnableProsodyAssessment |
Включает оценку просодии для оценки произношения. Эта функция оценивает такие аспекты, как стресс, интонация, скорость речи и ритм. Эта функция предоставляет аналитические сведения о естественности и экспрессивности вашей речи. Включение оценки prosody является необязательным. Если этот метод вызывается, ProsodyScore возвращается значение результата. |
EnableContentAssessmentWithTopic |
Включает оценку содержимого. Оценка содержимого является частью неписаной оценки сценария обучения языка. Предоставив описание, вы можете улучшить понимание конкретной темы, о которой говорится. Например, в вызове pronunciationAssessmentConfig.EnableContentAssessmentWithTopic("greeting"); C#. Вы можете заменить "приветствие" нужным текстом, чтобы описать раздел. Описание не имеет ограничения длины и в настоящее время поддерживает только языковой en-US стандарт. |
Получение результатов оценки произношения
При распознавании речи можно запросить результаты оценки произношения в виде объектов SDK или строки JSON.
using (var speechRecognizer = new SpeechRecognizer(
speechConfig,
audioConfig))
{
pronunciationAssessmentConfig.ApplyTo(speechRecognizer);
var speechRecognitionResult = await speechRecognizer.RecognizeOnceAsync();
// The pronunciation assessment result as a Speech SDK object
var pronunciationAssessmentResult =
PronunciationAssessmentResult.FromResult(speechRecognitionResult);
// The pronunciation assessment result as a JSON string
var pronunciationAssessmentResultJson = speechRecognitionResult.Properties.GetProperty(PropertyId.SpeechServiceResponse_JsonResult);
}
Результаты Word, слога и phoneme недоступны с помощью объектов SDK с пакетом SDK для C++. Результаты для слова, слога и фонемы доступны только в строке JSON.
auto speechRecognizer = SpeechRecognizer::FromConfig(
speechConfig,
audioConfig);
pronunciationAssessmentConfig->ApplyTo(speechRecognizer);
speechRecognitionResult = speechRecognizer->RecognizeOnceAsync().get();
// The pronunciation assessment result as a Speech SDK object
auto pronunciationAssessmentResult =
PronunciationAssessmentResult::FromResult(speechRecognitionResult);
// The pronunciation assessment result as a JSON string
auto pronunciationAssessmentResultJson = speechRecognitionResult->Properties.GetProperty(PropertyId::SpeechServiceResponse_JsonResult);
Чтобы узнать, как указать язык обучения для оценки произношения в собственном приложении, см . пример кода.
Для разработки приложений Android можно использовать слова, слоги и результаты phoneme с помощью объектов SDK с пакетом SDK для Java. Эти результаты также доступны в строке JSON. Для разрабатываемых приложений среды выполнения Java (JRE) результаты по слову, слогу и фонеме доступны только в строке JSON.
SpeechRecognizer speechRecognizer = new SpeechRecognizer(
speechConfig,
audioConfig);
pronunciationAssessmentConfig.applyTo(speechRecognizer);
Future<SpeechRecognitionResult> future = speechRecognizer.recognizeOnceAsync();
SpeechRecognitionResult speechRecognitionResult = future.get(30, TimeUnit.SECONDS);
// The pronunciation assessment result as a Speech SDK object
PronunciationAssessmentResult pronunciationAssessmentResult =
PronunciationAssessmentResult.fromResult(speechRecognitionResult);
// The pronunciation assessment result as a JSON string
String pronunciationAssessmentResultJson = speechRecognitionResult.getProperties().getProperty(PropertyId.SpeechServiceResponse_JsonResult);
recognizer.close();
speechConfig.close();
audioConfig.close();
pronunciationAssessmentConfig.close();
speechRecognitionResult.close();
var speechRecognizer = SpeechSDK.SpeechRecognizer.FromConfig(speechConfig, audioConfig);
pronunciationAssessmentConfig.applyTo(speechRecognizer);
speechRecognizer.recognizeOnceAsync((speechRecognitionResult: SpeechSDK.SpeechRecognitionResult) => {
// The pronunciation assessment result as a Speech SDK object
var pronunciationAssessmentResult = SpeechSDK.PronunciationAssessmentResult.fromResult(speechRecognitionResult);
// The pronunciation assessment result as a JSON string
var pronunciationAssessmentResultJson = speechRecognitionResult.properties.getProperty(SpeechSDK.PropertyId.SpeechServiceResponse_JsonResult);
},
{});
Чтобы узнать, как указать язык обучения для оценки произношения в собственном приложении, см . пример кода.
speech_recognizer = speechsdk.SpeechRecognizer(
speech_config=speech_config, \
audio_config=audio_config)
pronunciation_assessment_config.apply_to(speech_recognizer)
speech_recognition_result = speech_recognizer.recognize_once()
# The pronunciation assessment result as a Speech SDK object
pronunciation_assessment_result = speechsdk.PronunciationAssessmentResult(speech_recognition_result)
# The pronunciation assessment result as a JSON string
pronunciation_assessment_result_json = speech_recognition_result.properties.get(speechsdk.PropertyId.SpeechServiceResponse_JsonResult)
Чтобы узнать, как указать язык обучения для оценки произношения в собственном приложении, см . пример кода.
SPXSpeechRecognizer* speechRecognizer = \
[[SPXSpeechRecognizer alloc] initWithSpeechConfiguration:speechConfig
audioConfiguration:audioConfig];
[pronunciationAssessmentConfig applyToRecognizer:speechRecognizer];
SPXSpeechRecognitionResult *speechRecognitionResult = [speechRecognizer recognizeOnce];
// The pronunciation assessment result as a Speech SDK object
SPXPronunciationAssessmentResult* pronunciationAssessmentResult = [[SPXPronunciationAssessmentResult alloc] init:speechRecognitionResult];
// The pronunciation assessment result as a JSON string
NSString* pronunciationAssessmentResultJson = [speechRecognitionResult.properties getPropertyByName:SPXSpeechServiceResponseJsonResult];
Чтобы узнать, как указать язык обучения для оценки произношения в собственном приложении, см . пример кода.
let speechRecognizer = try! SPXSpeechRecognizer(speechConfiguration: speechConfig, audioConfiguration: audioConfig)
try! pronConfig.apply(to: speechRecognizer)
let speechRecognitionResult = try? speechRecognizer.recognizeOnce()
// The pronunciation assessment result as a Speech SDK object
let pronunciationAssessmentResult = SPXPronunciationAssessmentResult(speechRecognitionResult!)
// The pronunciation assessment result as a JSON string
let pronunciationAssessmentResultJson = speechRecognitionResult!.properties?.getPropertyBy(SPXPropertyId.speechServiceResponseJsonResult)
Результирующие параметры
В зависимости от того, используете ли вы скрипт или неписаную оценку, вы можете получить различные результаты оценки произношения. Оценка сценариев — это сценарий обучения на языке чтения. Неописаная оценка предназначена для сценария обучения языка.
Примечание.
Различия в ценах между скриптами и неписаной оценкой см. в разделе "Цены".
Результаты оценки с помощью скриптов
В этой таблице перечислены некоторые ключевые результаты оценки произношения для сценария оценки или сценария чтения.
Параметр | Описание | Степень детализации |
---|---|---|
AccuracyScore |
Точность произношения речи. Правильность указывает на степень соответствия фонем произношению носителя языка. Слог, слово и оценка точности полнотекстового текста агрегируются из оценки точности на уровне фонема и уточнены с целями оценки. | уровень Телефон me, Уровень слога (только для США), Уровень Word, Уровень полнотекстового текста |
FluencyScore |
Владение языком лица, которому принадлежит данная речь. Владение языком указывает на степень соответствия речи использованию пауз между словами носителем языка. | Уровень полнотекстового текста |
CompletenessScore |
Полнота речи: определяется по соотношению произнесенных слов к входному эталонному тексту. | Уровень полнотекстового текста |
ProsodyScore |
Просодию данной речи. Prosody указывает, насколько естественно данное речь, включая стресс, интонацию, скорость речи и ритм. | Уровень полнотекстового текста |
PronScore |
Общая оценка качества произношения данной речи. PronScore вычисляется на основе оценок AccuracyScore , FluencyScore и CompletenessScore , взятых с весом. |
Уровень полнотекстового текста |
ErrorType |
Это значение указывает тип ошибки по сравнению с ссылочным текстом. Варианты включают, если слово опущено, вставлено или неправильно вставлено с разрывом. Он также указывает на отсутствие перерыва при препинаниях. Он также указывает, плохо произносится ли слово, или монотонно растет, падает или плоский на речевых фрагментах. Возможные значения не являются None ошибками в этом слове, , Omission Insertion , Mispronunciation , , UnexpectedBreak и MissingBreak Monotone . Тип ошибки может быть Mispronunciation , если произношение AccuracyScore слова ниже 60. |
Уровень Word |
Незаписанные результаты оценки
В этой таблице перечислены некоторые ключевые результаты оценки произношения для неписаной оценки или сценария речи.
VocabularyScore
, GrammarScore
и TopicScore
параметры свернуты к объединенной оценке содержимого.
Примечание.
Оценки содержимого и просодий доступны только в языковом стандарте en-US .
Параметр ответа | Description | Степень детализации |
---|---|---|
AccuracyScore |
Точность произношения речи. Правильность указывает на степень соответствия фонем произношению носителя языка. Слоги, слова и оценки точности полнотекстового текста агрегируются из оценки точности на уровне телефона и уточняются с целями оценки. | уровень Телефон me, Уровень слога (только для США), Уровень Word, Уровень полнотекстового текста |
FluencyScore |
Владение языком лица, которому принадлежит данная речь. Владение языком указывает на степень соответствия речи использованию пауз между словами носителем языка. | Уровень полнотекстового текста |
ProsodyScore |
Просодию данной речи. Prosody указывает, насколько естественно данное речь, включая стресс, интонацию, скорость речи и ритм. | Уровень полнотекстового текста |
VocabularyScore |
Знание лексического использования. Он оценивает эффективное использование слов говорящего и их правильность в данном контексте для точного выражения идей и уровня лексической сложности. | Уровень полнотекстового текста |
GrammarScore |
Правильность использования грамматики и различных шаблонов предложений. Лексическая точность, грамматическая точность и разнообразие структур предложений совместно повышают грамматические ошибки. | Уровень полнотекстового текста |
TopicScore |
Уровень понимания и взаимодействия с темой, который предоставляет аналитические сведения о способности докладчика выразить свои мысли и идеи эффективно и способность взаимодействовать с этой темой. | Уровень полнотекстового текста |
PronScore |
Общая оценка качества произношения данной речи. Это значение агрегируется из AccuracyScore , FluencyScore и CompletenessScore с весом. |
Уровень полнотекстового текста |
ErrorType |
Слово плохо произносится, неправильно вставлено с перерывом или отсутствует разрыв при препинаниях. Он также указывает, является ли произношение монотонно растет, падает или плоский на речевых фрагментах. Возможные значения не являются None ошибками в этом слове, Mispronunciation , , UnexpectedBreak и MissingBreak Monotone . |
Уровень Word |
В следующей таблице описаны результаты оценки просодии.
Поле | Description |
---|---|
ProsodyScore |
Просодийный счет всего речевых фрагментов. |
Feedback |
Отзывы о уровне слова, включая Break и Intonation . |
Break |
|
ErrorTypes |
Типы ошибок, связанные с разрывами, включая UnexpectedBreak и MissingBreak . Текущая версия не предоставляет тип ошибки останова. Необходимо задать пороговые значения в полях UnexpectedBreak – Confidence и MissingBreak – confidence решить, есть ли непредвиденный перерыв или отсутствие перерыва перед словом. |
UnexpectedBreak |
Указывает непредвиденный разрыв перед словом. |
MissingBreak |
Указывает отсутствующий разрыв перед словом. |
Thresholds |
Предлагаемые пороговые значения для обоих показателей достоверности — 0,75. Это означает, что если значение UnexpectedBreak – Confidence больше 0,75, он имеет непредвиденный разрыв. Если значение MissingBreak – confidence больше 0,75, у него отсутствует разрыв. Хотя 0.75 — это значение, которое мы рекомендуем, лучше настроить пороговые значения на основе собственного сценария. Если вы хотите иметь конфиденциальность обнаружения переменных для этих двух разрывов, можно назначить разные пороговые UnexpectedBreak - Confidence значения для полей и MissingBreak - Confidence полей. |
Intonation |
Указывает интонацию в речи. |
ErrorTypes |
Типы ошибок, связанные с интонацией, в настоящее время поддерживают только Monotone. Monotone Если в поле ErrorTypes существует, высказывание обнаруживается монотонным. Монотон обнаруживается во всем высказывании, но тег назначается всем словам. Все слова в одном высказывании используют одну и ту же монотонную информацию об обнаружении. |
Monotone |
Указывает монотонную речь. |
Thresholds (Monotone Confidence) |
Поля Monotone - SyllablePitchDeltaConfidence зарезервированы для обнаружения монотонных пользователей. Если вы не удовлетворены предоставленным монотонным решением, настройте пороговые значения для этих полей, чтобы настроить обнаружение в соответствии с вашими предпочтениями. |
Пример результата JSON
Результаты оценки произношения скриптов для произнесемого слова hello отображаются в виде строки JSON в следующем примере.
- Фонетический алфавит — IPA.
- Слоги возвращаются вместе с фонемами для одного и того же слова.
- Значения
Offset
иDuration
можно использовать для согласования слогов с соответствующими фонемами. Например, начальное смещение (117000000) второго слогаloʊ
соответствует третьему фонему.l
Смещение представляет время начала распознанной речи в звуковом потоке. Значение измеряется в 100 единицах наносекунда. Дополнительные сведения иOffset
Duration
дополнительные сведения см. в свойствах ответа. - Существует пять, которые соответствуют количеству
NBestPhonemes
запрошенных телефонных параметров. - В
Phonemes
наиболее вероятной голосовой фонемой былаə
, а не ожидаемая фонемаɛ
. Оценка достоверности ожидаемой фонемыɛ
всего 47. Другие возможные соответствия получили оценки достоверности 52, 17 и 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
}
]
}
]
}
]
}
Вы можете получить показатели оценки произношения для:
- всего текста,
- Слова
- групп слогов,
- Телефон mes in Формат SAPI или IPA
Поддерживаемые функции на языковой стандарт
В следующей таблице приведены сведения о функциях, которые поддерживают языковые стандарта. Дополнительные сведения см. в следующих разделах.
алфавит Телефон me | IPA | SAPI |
---|---|---|
имя Телефон me | en-US |
en-US , zh-CN |
Слоговая группа | en-US |
en-US |
Голосовые фонемы | en-US |
en-US |
групп слогов,
Оценка произношения может предоставлять результаты оценки на уровне слогов. Слово обычно произносится слогом слогом, а не фонемой по телефону. Группирование в слогах более удобочитаемо и выравнивается с привычками говорить.
Оценка произношения поддерживает группы слогов только в en-US
IPA и с SAPI.
В следующей таблице приведены примеры фонем в сравнении с соответствующими слогами.
Пример слова | Фонемы | Слоги |
---|---|---|
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 |
Чтобы запросить результаты на уровне слогов вместе с фонемами, задайте для параметра настройки детализации значение Phoneme
.
Формат фонетического алфавита
Оценка произношения поддерживает телефонные имена в en-US
IPA и en-US
zh-CN
с SAPI.
Для языковых стандартов, поддерживающих имя телефонной цепочки, имя телефонной цепочки предоставляется вместе с оценкой. имена Телефон me помогают определить, какие фонемы были выражены точно или неточно. Для других языковых стандартов можно получить только оценку телефонной связи.
В следующей таблице приведены примеры фонем SAPI в сравнении с соответствующими фонемами IPA.
Пример слова | Фонемы SAPI | Фонемы IPA |
---|---|---|
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 |
Чтобы запросить фонемы IPA, установите для фонетического алфавита значение IPA
. Если вы не указываете алфавит, то по умолчанию фонемы находятся в формате SAPI.
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"
Оценка речевых телефонных параметров
С помощью голосовых телефонных параметров вы можете получить оценки достоверности, которые указывают, насколько вероятно, разговорные телефонные месы соответствовали ожидаемым телефонным месям.
Оценка произношения поддерживает разговорные фонемы в en-US
IPA и с SAPI.
Например, чтобы получить полный речной звук для слова Hello
, можно сцепить первый разговорный телефон для каждого ожидаемого фонема с наивысшей оценкой достоверности. В следующем результате оценки, когда вы говорите словоhello
, ожидаемые фонемы IPA.h ɛ l oʊ
Тем не менее, фактические разговорные фонемы.h ə l oʊ
В этом примере у вас есть пять возможных кандидатов для каждого ожидаемого фонема. Результат оценки показывает, что наиболее вероятный разговорный телефон был вместо ожидаемого фонема ə
ɛ
. Оценка достоверности ожидаемой фонемы ɛ
всего 47. Другие возможные соответствия получили оценки достоверности 52, 17 и 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
}
]
}
]
}
]
}
Чтобы указать, сколько возможных голосовых фонем будут получать оценки достоверности и будут ли они вообще использоваться, присвойте параметру NBestPhonemeCount
целочисленное значение, например 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
Связанный контент
- Узнайте о тесте качества.
- Попробуйте оценить произношение в Speech Studio.
- Ознакомьтесь с демонстрацией оценки произношения, удобной для развертывания.
- Просмотрите видео демонстрацию оценки произношения.