Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете использовать язык разметки синтеза речи (SSML) с текстом для указания того, как речь произносится. Например, можно использовать SSML с фонемами и пользовательским лексиконом для улучшения произношения. Вы также можете использовать SSML для определения того, как произносится слово или математическое выражение.
Дополнительные сведения об использовании элементов SSML для улучшения произношения см. в следующих разделах. Дополнительные сведения о синтаксисе SSML см. в статье о структуре и событиях документов SSML.
Элемент фонемы
Элемент phoneme используется для фонетического произношения в документах SSML. Всегда предоставляйте удобочитаемую речь в качестве резервной версии.
Фонетические алфавиты состоят из телефонов, которые состоят из букв, чисел или символов, иногда в сочетании. Каждый телефон описывает уникальный звук речи. Фонетический алфавит отличается от латинского алфавита, где любое письмо может представлять несколько произнесенных звуков. Рассмотрим различные en-US произношения буквы "c" в словах "конфеты" и "прекратить" или различные произношения сочетания букв "th" в словах "вещь" и "те".
Примечание
Список языковых стандартов, поддерживающих фонемы, смотрите в сносках в таблице поддержки языков.
phoneme Использование атрибутов элемента описано в следующей таблице.
| Атрибут | Описание | Обязательный или необязательный |
|---|---|---|
alphabet |
Фонетический алфавит, используемый при синтезе произношения строки в атрибуте ph . Строка, указывающая алфавит, должна быть указана в строчных буквах. Ниже приведены возможные алфавиты, которые можно указать:
Алфавит применяется только к phoneme элементу. |
Необязательный |
ph |
Строка, содержащая фонемы, указывающие произношение слова в элементе phoneme.
Каждый языковой стандарт поддерживает определенный набор телефонов. См. фонетические алфавиты SSML. Если указанная строка содержит нераспознанные телефоны, текст в службу распознавания речи вернет ошибку http 400 для недопустимого SSML.Для ipa, чтобы выделить ударный слог, поместив символ удара перед этим слогом, необходимо пометить все слоги слова. Или еще, слог перед этим символом стресса подчеркивается. Для sapi, если вы хотите подчеркнуть один слог, необходимо поместить символ стресса после этого слога, независимо от того, отмечены ли все слоги слова. |
Обязательно |
Примеры Phoneme
phoneme поддерживаемые значения атрибутов элемента. В первых двух примерах значения ph="tə.ˈmeɪ.toʊ" или ph="təmeɪˈtoʊ" указываются для подчеркивания слога meɪ.
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
<voice name="en-US-AvaNeural">
<phoneme alphabet="ipa" ph="tə.ˈmeɪ.toʊ"> tomato </phoneme>
</voice>
</speak>
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
<voice name="en-US-AvaNeural">
<phoneme alphabet="ipa" ph="təmeɪˈtoʊ"> tomato </phoneme>
</voice>
</speak>
<speak version="1.0" xmlns="https://www.w3.org/2001/10/synthesis" xml:lang="en-US">
<voice name="en-US-AvaNeural">
<phoneme alphabet="sapi" ph="iy eh n y uw eh s"> en-US </phoneme>
</voice>
</speak>
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
<voice name="en-US-AvaNeural">
<s>His name is Mike <phoneme alphabet="ups" ph="JH AU"> Zhou </phoneme></s>
</voice>
</speak>
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
<voice name="en-US-AvaNeural">
<phoneme alphabet='x-sampa' ph='he."lou'>hello</phoneme>
</voice>
</speak>
Пользовательский лексикон
Вы можете определить, как отдельные сущности (например, компания, медицинский термин или эмодзи) считываются в SSML с помощью фонемы и вложенных элементов. Чтобы определить, как считываются несколько сущностей, создайте структурированный пользовательский лексикон-файл XML. Затем вы отправляете пользовательский XML-файл лексикона и ссылаетесь на него с помощью элемента SSML lexicon .
Примечание
Список локалей, которые поддерживают пользовательский лексикон, см. в сносках к таблице поддержки языка.
Элемент lexicon не поддерживается API Long Audio. В случае длинного текста для синтеза речи вместо этого используйте API пакетного синтеза (Предварительно).
lexicon Использование атрибутов элемента описано в следующей таблице.
| Атрибут | Описание | Обязательный или необязательный |
|---|---|---|
uri |
Универсальный ресурсный идентификатор (URI) общедоступного пользовательского XML-файла лексикона с расширением файла .xml или .pls. Использование Хранилище BLOB-объектов Azure рекомендуется, но не требуется, GitHub URI и другие общедоступные ссылки также поддерживаются. Если вы не хотите сделать пользовательский лексикон общедоступным, можно использовать SAS. Дополнительные сведения о пользовательском файле лексикона см. в разделе "Спецификация произношения лексикона (PLS) версии 1.0". |
Обязательно |
Примеры пользовательского словаря
lexicon поддерживаемые значения атрибутов элемента.
После публикации пользовательского лексикона вы можете ссылаться на него из SSML. В следующем примере SSML ссылается на пользовательский лексикон, который был отправлен в https://www.example.com/customlexicon.xml. Мы поддерживаем URL-адреса словарей из Хранилище BLOB-объектов Azure. Однако обратите внимание, что другие общедоступные URL-адреса могут быть несовместимы.
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
xmlns:mstts="http://www.w3.org/2001/mstts"
xml:lang="en-US">
<voice name="en-US-AvaNeural">
<lexicon uri="https://www.example.com/customlexicon.xml"/>
BTW, we will be there probably at 8:00 tomorrow morning.
Could you help leave a message to Robert Benigni for me?
</voice>
</speak>
Пользовательский файл лексикона
Чтобы определить, как считываются несколько сущностей, их можно определить в пользовательском XML-файле лексикона с расширением файла .xml или .pls.
Примечание
Пользовательский файл лексикона является допустимым XML-документом, но его нельзя использовать в качестве документа SSML.
Ниже приведены некоторые ограничения пользовательского лексического файла:
- Размер файла: размер пользовательского лексического файла ограничен не более 100 КБ. Если размер файла превышает ограничение в 100 КБ, запрос синтеза завершается сбоем. Вы можете разделить лексикон на несколько лексиконов и включить их в SSML, если размер файла превышает 100 КБ.
- Обновление кэша Lexicon: пользовательский лексикон кэшируется с URI в качестве ключа для преобразования текста в речь во время первой загрузки. Лексикон с тем же унифицированным идентификатором ресурса (URI) не перезагружается в течение 15 минут, поэтому пользовательское изменение лексики должно ждать 15 минут, чтобы вступить в силу.
Поддерживаемые элементы и атрибуты пользовательского XML-файла лексикона описаны в спецификации произносительного лексикона (PLS) версии 1.0. Ниже приведены некоторые примеры поддерживаемых элементов и атрибутов:
- Элемент
lexiconсодержит по крайней мере одинlexemeэлемент. Lexicon содержит необходимыйxml:langатрибут для указания локали, к которой он должен применяться. Один пользовательский лексикон ограничен одним языковым стандартом по дизайну, поэтому если применить его для другого языкового стандарта, он не работает. Элементlexiconтакже имеет атрибут, указывающийalphabetалфавит, используемый в лексиконе. Возможные значения:ipaиx-microsoft-sapi. - Каждый
lexemeэлемент содержит по крайней мере одинgraphemeэлемент и один или несколькоgraphemealiasэлементов.phonemeЭлементlexemeчувствителен к регистру в пользовательском лексиконе. Например, если вы предоставляете только фонему дляlexeme"Hello", это не сработает дляlexeme"hello". - Элемент
graphemeсодержит текст, описывающий ортографию. - Элементы
aliasиспользуются для указания произношения акронима или сокращенного термина. - Элемент
phonemeпредоставляет текст, описывающий, какlexemeпроизносится. Граница слога является "." в алфавите IPA. Элементphonemeне может содержать пробелы при использовании алфавита IPA. - Когда элементы
aliasиphonemeпредоставляются с одинаковымgraphemeэлементом,aliasимеет более высокий приоритет.
Microsoft предоставляет средство проверки для пользовательского лексикона, которое помогает находить ошибки (с подробными сообщениями об ошибках) в файле пользовательского лексикона. Прежде чем использовать пользовательский XML-файл лексикона в рабочей среде со службой "Речь", рекомендуется использовать этот инструмент.
Примеры пользовательских лексикон-файлов
Следующий xml-пример (не SSML) будет содержаться в пользовательском файле лексикона .xml . При использовании этого пользовательского лексикона "BTW" произносится как "Кстати". "Бенини" произносится с предоставленным IPA "bɛˈniːnji".
<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0"
xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
alphabet="ipa" xml:lang="en-US">
<lexeme>
<grapheme>BTW</grapheme>
<alias>By the way</alias>
</lexeme>
<lexeme>
<grapheme>Benigni</grapheme>
<phoneme>bɛˈniːnji</phoneme>
</lexeme>
<lexeme>
<grapheme>😀</grapheme>
<alias>test emoji</alias>
</lexeme>
</lexicon>
Вы не можете напрямую задать произношение фразы с помощью пользовательского лексикона. Если необходимо задать произношение для акронима или сокращенного термина, сначала предоставьте aliasи свяжите phoneme его с этим alias. Например:
<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0"
xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
alphabet="ipa" xml:lang="en-US">
<lexeme>
<grapheme>Scotland MV</grapheme>
<alias>ScotlandMV</alias>
</lexeme>
<lexeme>
<grapheme>ScotlandMV</grapheme>
<phoneme>ˈskɒtlənd.ˈmiːdiəm.weɪv</phoneme>
</lexeme>
</lexicon>
Вы также можете напрямую указать ожидаемый alias для акронима или сокращенного термина. Например:
<lexeme>
<grapheme>Scotland MV</grapheme>
<alias>Scotland Media Wave</alias>
</lexeme>
В предыдущих примерах XML-файла пользовательского лексикона используется алфавит IPA, который также называется набором фонем IPA. Мы рекомендуем использовать IPA, так как это международный стандарт. Для некоторых символов IPA они представляют собой предварительно составленные и декомпозированные версии этих символов, когда они представлены в Юникоде. Пользовательский лексикон поддерживает только разложенный Юникод.
Служба "Речь" определяет фонетический набор sapi для следующих языковых стандартов: en-US, en-CA, fr-FR, fr-CA, fr-BE, fr-CH, de-DE, de-AT, de-CH, es-ES, ja-JP, zh-CN, zh-HK, yue-CN и zh-TW. Для получения дополнительной информации о фонетическом алфавите службы "Речь" см. фонетические наборы службы "Речь".
Вы можете использовать x-microsoft-sapi в качестве значения для атрибута alphabet с пользовательским лексиконом, как показано здесь:
<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0"
xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
alphabet="x-microsoft-sapi" xml:lang="en-US">
<lexeme>
<grapheme>BTW</grapheme>
<alias> By the way </alias>
</lexeme>
<lexeme>
<grapheme> Benigni </grapheme>
<phoneme> b eh 1 - n iy - n y iy </phoneme>
</lexeme>
</lexicon>
Элемент Say-as
Элемент say-as указывает тип контента, например число или дату текста элемента. Этот элемент предоставляет рекомендации подсистеме синтеза речи о том, как произносить текст.
say-as Использование атрибутов элемента описано в следующей таблице.
| Атрибут | Описание | Обязательный или необязательный |
|---|---|---|
interpret-as |
Указывает тип контента текста элемента. Список типов см. в следующей таблице. | Обязательно |
format |
Предоставляет дополнительные сведения о точном форматировании текста элемента для типов контента, которые могут иметь неоднозначные форматы. SSML определяет форматы типов контента, которые используют их. См. следующую таблицу. | Необязательный |
detail |
Указывает уровень детализации, который нужно озвучить. Например, этот атрибут может запросить, чтобы подсистема синтеза речи произнесла знаки препинания. Не определены стандартные значения для detail. |
Необязательный |
Для атрибутов interpret-as и format поддерживаются следующие типы контента.
format Включите атрибут только в том случае, если format столбец не пуст в этой таблице.
Примечание
Значения characters и spell-out атрибута interpret-as поддерживаются для всех языковых стандартов для преобразования текста в речь .
Другие interpret-as значения атрибутов поддерживаются для всех языков: арабский, каталонский, китайский, датский, голландский, английский, французский, финский, немецкий, хинди, итальянский, японский, корейский, норвежский, польский, португальский, русский, испанский и шведский.
| интерпретировать как | Формат | Интерпретация |
|---|---|---|
characters, spell-out |
casesensitive | Текст произносится как отдельные буквы (выписанные). Подсистема синтеза речи произносит:<say-as interpret-as="characters">Test</say-as>Как "T E S T". Произносит: <say-as interpret-as="characters" format="casesensitive">Test</say-as>Как "капитал T E S T". |
alphanumeric |
Заклинание | Текст произносится как отдельные буквы (выписанные) с правильной паузой. Подсистема синтеза речи произносит:<say-as interpret-as="alphanumeric" format="spell">ABCDEF</say-as>Как "A B C <пауза> D E F". Можно указать паузу с помощью "-". Подсистема синтеза речи произносит: <say-as interpret-as="alphanumeric" format="spell">AB-CD-EF</say-as>Как "A B <пауза> C D <пауза> E F". |
cardinal, number |
Ни один | Текст произносится как кардиналовое число. Подсистема синтеза речи произносит:There are <say-as interpret-as="cardinal">10</say-as> optionsКак "Есть десять вариантов". |
ordinal |
Ни один | Текст произносится в виде порядкового номера. Подсистема синтеза речи произносит:Select the <say-as interpret-as="ordinal">3rd</say-as> optionВыберите третий вариант. |
number_digit |
Ни один | Текст произносится как последовательность отдельных цифр. Подсистема синтеза речи произносит:<say-as interpret-as="number_digit">123456789</say-as>Как "1 2 3 4 5 6 7 8 9". |
fraction |
Ни один | Текст произносится как дробное число. Подсистема синтеза речи произносит:<say-as interpret-as="fraction">3/8</say-as> of an inchкак "три восьмых дюйма". |
date |
dmy, mdy, ymd, ym, my, md, dm, d, m, y | Текст произносится как дата. Атрибут format задает формат даты (d=day, m=month и y=year). Подсистема синтеза речи произносит:Today is <say-as interpret-as="date">10-12-2016</say-as>Как "Сегодня двенадцатое октября две тысячи шестнадцатого года". Произносит: Today is <say-as interpret-as="date" format="dmy">10-12-2016</say-as>Как "Сегодня десятое декабря две тысячи шестнадцатого года." |
time |
hms12, hms24 | Текст произносится как указание времени. Атрибут format указывает, указано ли время с помощью 12-часовых часов (hms12) или 24-часовых часов (hms24). Используйте двоеточие для разделения чисел, представляющих часы, минуты и секунды. Ниже приведены некоторые допустимые примеры времени: 12:35, 1:14:32, 08:15 и 02:50:45. Подсистема синтеза речи произносит:The train departs at <say-as interpret-as="time" format="hms12">4:00am</say-as>Поезд отправляется в четыре утра. |
duration |
hms, hm, ms | Текст произносится как длительность. Атрибут format задает формат длительности (h=hour, m=minute и s=second). Подсистема синтеза речи произносит:<say-as interpret-as="duration">01:18:30</say-as>Как "один час восемнадцать минут и тридцать секунд". Произносит: <say-as interpret-as="duration" format="ms">01:18</say-as>Как "одна минута и восемнадцать секунд". Этот тег поддерживается только на английском и испанском языках. |
telephone |
Ни один | Текст произносится как телефонный номер. Подсистема синтеза речи произносит:The number is <say-as interpret-as="telephone">(888) 555-1212</say-as>Как "Мой номер — код города восемь восемь восемь пять пять пять один два один два". |
currency |
Ни один | Текст представляется в форме, похожей на валюту. Подсистема синтеза речи произносит:<say-as interpret-as="currency">99.9 USD</say-as>Как "девяносто девять долларов США и девяносто центов". |
unit |
Ни один | Текст произносится как единица. Подсистема синтеза речи произносит:<say-as interpret-as="unit">10 m</say-as>Как "десять метров". |
address |
Ни один | Текст произносится как речь. Подсистема синтеза речи произносит:I'm at <say-as interpret-as="address">150th CT NE, Redmond, WA</say-as>Как "Я на 150-й улице северо-восточном Редмонде, Вашингтон". |
name |
Ни один | Этот текст произносится как имя человека. Подсистема синтеза речи произносит:<say-as interpret-as="name">ED</say-as>Произносится как [æd]. В китайских именах некоторые символы произносятся по-разному, когда они отображаются в имени семьи. Например, движок синтеза речи произносит 仇 как <say-as interpret-as="name">仇先生</say-as>Как [qiú] вместо [chóu]. |
Примеры использования "say-as"
say-as поддерживаемые значения атрибутов элемента.
Подсистема синтеза речи говорит следующий пример: "Ваш первый запрос был для одной комнаты в октябре девятнадцать двадцать десять с ранним прибытием в двенадцать тридцати пяти вечера".
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
<voice name="en-US-Ava:DragonHDLatestNeural">
<p>
Your <say-as interpret-as="ordinal"> 1st </say-as> request was for <say-as interpret-as="cardinal"> 1 </say-as> room
on <say-as interpret-as="date" format="mdy"> 10/19/2010 </say-as>, with early arrival at <say-as interpret-as="time" format="hms12"> 12:35pm </say-as>.
</p>
</voice>
</speak>
Вложенный элемент
Используйте элемент sub, чтобы указать, что текстовое значение атрибута псевдонима должно быть произнесено вместо текста, заключённого в элемент. Таким образом, SSML содержит как произнесенные, так и письменные формы.
sub Использование атрибутов элемента описано в следующей таблице.
| Атрибут | Описание | Обязательный или необязательный |
|---|---|---|
alias |
Текстовое значение, которое должно быть произнесено вместо заключенного текста элемента. | Обязательно |
Подпримеры
sub поддерживаемые значения атрибутов элемента.
Движок синтеза речи в следующем примере произносит "Консорциум World Wide Web".
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
<voice name="en-US-Ava:DragonHDLatestNeural">
<sub alias="World Wide Web Consortium">W3C</sub>
</voice>
</speak>
Чтение Markdown
Чтобы прочитать содержимое markdown, можно обернуть текст markdown элементом mstts:markdown. TTS читает только текстовое содержимое в формате Markdown и игнорирует его синтаксис.
Например, следующий SSML произносит вслух два предложения: "Это заголовок" и "И это жирный текст", а синтаксис markdown не будет прочитан.
<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xmlns:mstts='http://www.w3.org/2001/mstts' xml:lang='en-US'>
<voice name='en-US-JennyNeural'>
<mstts:markdown># This is headline
And this is a **bold** text
</mstts:markdown>
</voice>
</speak>
Поддерживаемый синтаксис в Markdown
TTS поддерживает синтаксис markdown, определенный в спецификации CommonMark, которая является широко используемой спецификацией markdown. Дополнительные сведения о спецификации CommonMark см. в разделе CommonMark.
Чтение математических выражений
Существует два способа чтения математического выражения:
С использованием элемента математического домена
Внедряйте математическое выражение обычного текста непосредственно в SSML и укажите математический домен с помощью
<mstts:prompt domain="Math" />.См. раздел: чтение математических выражений обычного текста
С элементами MathML
Представляет математическое выражение с элементами MathML.
См. раздел: чтение математических выражений с помощью MathML
Примечание
В настоящее время эти две функции поддерживаются в следующих языковых стандартах: de-DE, en-AU, en-GB, en-US, всех языковых стандартах английского, es-ES, es-MX, всех языковых стандартов испанского, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR и zh-CN.
Чтение математических выражений обычного текста
Чтобы включить чтение сложных математических выражений, можно добавить <mstts:prompt domain="Math" /> элемент, чтобы активировать специфичные для математики правила произношения.
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
<voice name="en-US-AvaMultilingualNeural">
<mstts:prompt domain="Math" />
x = (-b ± √(b² - 4ac)) / 2a
</voice>
</speak>
По умолчанию скобки не считываются в математических выражениях.
Если вы хотите прочитать скобки, можно указать <mstts:mathspeechverbosity level="verbose" /> в SSML
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
<voice name="en-US-AvaMultilingualNeural">
<mstts:prompt domain="Math" /><mstts:mathspeechverbosity level="verbose" />
x = (-b ± √(b² - 4ac)) / 2a
</voice>
</speak>
Если вы хотите, чтобы выражение считывалось на другом языке с многоязычным голосом, укажите элемент lang в SSML.
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
<voice name="en-US-AvaMultilingualNeural">
<mstts:prompt domain="Math" />
<lang xml:lang="es-ES">x = (-b ± √(b² - 4ac)) / 2a</lang>
</voice>
</speak>
Чтение математических выражений с помощью MathML
Язык математической разметки (MathML) — это язык разметки, совместимый с XML, описывающий математическое содержимое и структуру. Служба "Речь" может использовать MathML в качестве входного текста для правильного произнесения математических нотации в выходном звуке.
Поддерживаются все элементы из спецификаций MathML 2.0 и MathML 3.0, за исключением элементов Элементарной математики в MathML 3.0.
Запишите эти элементы и атрибуты MathML:
- Атрибут
xmlnsв<math xmlns="http://www.w3.org/1998/Math/MathML">необязателен. - Элементы
semantics,annotation, иannotation-xmlне выводят речь, поэтому они игнорируются. - Если элемент не распознается, он будет игнорироваться, но дочерние элементы в нем по-прежнему будут обработаны.
Синтаксис XML не поддерживает сущности MathML, поэтому необходимо использовать соответствующие символы юникода для представления сущностей, например, сущность © должна быть представлена своими символами юникода ©, в противном случае возникает ошибка.
Примеры MathML
В этом примере выходные данные текста для речи — "a в квадрате плюс b в квадрате равно c в квадрате".
<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xmlns:mstts='http://www.w3.org/2001/mstts' xml:lang='en-US'>
<voice name='en-US-JennyNeural'>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
<msup>
<mi>a</mi>
<mn>2</mn>
</msup>
<mo>+</mo>
<msup>
<mi>b</mi>
<mn>2</mn>
</msup>
<mo>=</mo>
<msup>
<mi>c</mi>
<mn>2</mn>
</msup>
</math>
</voice>
</speak>