Использование оценки произношения

В этой статье вы узнаете, как оценить произношение с речью в тексте с помощью пакета 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 ошибками в этом слове, , OmissionInsertion, Mispronunciation, , UnexpectedBreakи MissingBreakMonotone. Тип ошибки может быть 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и MissingBreakMonotone. Уровень 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 единицах наносекунда. Дополнительные сведения и OffsetDurationдополнительные сведения см. в свойствах ответа.
  • Существует пять, которые соответствуют количеству 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-USzh-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