Балаболка (Text-To-Speech)

Балаболка

Программа "Балаболка" предназначена для чтения вслух текстовых файлов. Для воспроизведения звуков человеческого голоса могут использоваться любые речевые синтезаторы, установленные на компьютере. Для того, чтобы открыть файл в программе, воспользуйтесь пунктом главного меню "Файл | Открыть". Для создания нового текстового документа выберите пункт меню "Файл | Новый".

Воспроизведение речи можно контролировать при помощи стандартных кнопок, подобных тем, что присутствуют в любой мультимедийной программе ("воспроизвести", "пауза", "стоп"); эти кнопки расположены на панели в верхней части программы "Балаболка". Программа также умеет:

  • читать вслух содержимое буфера обмена;
  • показывать текст, содержащийся в документах различных форматов;
  • изменять настройки шрифта и цвета;
  • управлять процессом чтения из системного трея (области уведомлений) или при помощи глобальных сочетаний клавиш;
  • произносить набираемый на клавиатуре текст;
  • проверять орфографию;
  • делить текстовый файл на несколько файлов меньшего размера;
  • сравнивать пары файлов.

Список поддерживаемых форматов: AZW, AZW3, CHM, DjVu (DjVu+OCR), DOC, DOCX, EML, EPUB, FB2 (FB2.ZIP, FBZ), FB3, HTML, LIT, MD, MOBI, ODP, ODS, ODT, PDB, PDF, PPT, PPTX, PRC, RTF, TCR, WPD, XLS, XLSX. Интерфейс IFilter может быть использован для неизвестных программе форматов файлов.

"Балаболка" предоставляет возможность удалить из текста все знаки переноса на концах строк; это позволит избежать запинок при чтении слов.

Текст может быть сохранен в виде звукового файла; для этого необходимо воспользоваться пунктами меню "Файл | Сохранить аудиофайл" или "Файл | Сохранить как несколько аудиофайлов". Существует возможность преобразовать в звуковые файлы список текстовых файлов (пункт меню "Сервис | Преобразовать в аудиофайлы"). Список форматов звуковых файлов, поддерживаемых программой: WAV, MP3, MP4, OGG, OPUS, WMA.

"Балаболка" может сохранять текст, читаемый компьютерным голосом, в файлах формата LRC или SRT, а также в тегах ID3 внутри звуковых файлов формата MP3. При воспроизведении такого звукового файла в медиаплеере на компьютере или современном плеере текст отображается синхронно (также, как тексты песен в музыкальных файлах).

С помощью программы можно преобразовать субтитры в звуковой файл (поддерживаются форматы SRT, SMI, SSA/ASS). "Балаболка" использует текст и тайм-коды (диапазоны времени для показа текста) из файла субтитров для преобразования в речь с необходимыми паузами между репликами и сохранения аудиоданных в звуковой файл.

Программа умеет работать с различными версиями пакетов речевых функций Microsoft Speech API (SAPI) и Microsoft Speech Platform. Он позволяет изменять скорость речи и высоту звука.

Пользователь может использовать специальный список замен для улучшения качества воспроизведения речи. Это полезно в тех случаях, когда есть необходимость изменить произношение слов или отдельных слогов; для этого некоторое выражение в тексте заменяется на необходимое читаемое выражение. Для записи подобных правил замены используется два вида файлов:

  • правила замены основаны на синтаксисе регулярных выражений; списки правил для голосовых движков хранятся в файлах с расширением *.rex;
  • файлы с расширением *.dic; в связи с большой популярностью среди российских пользователей программы "Говорилка", для которой создано несколько словарей, корректирующих произношения слов, "Балаболка" также позволяет использовать данный формат словарей;
  • файлы *.bxd объединяют возможности двух других форматов.

Файлы со списками замен должны храниться в каталоге Документы\Balabolka (или Мои документы\Balabolka в Windows XP). Если используется словарь для коррекции произношения, то при чтении текста подсвечивается предложение или абзац целиком; в противном случае программа выделяет лишь текущее слово.

Примечание. В portable-версии словари находятся в подкаталоге Dictionaries в той же папке, где и сама программа.

WWW: balabolka.site

E-mail: crossa@list.ru

© 2006-2020 Илья Морозов


Речевые синтезаторы (голоса)

Speech Application Programming Interface или SAPI - это пакет речевых функций, разработанный корпорацией Microsoft для того, чтобы программы могли использовать компьютерный синтез речи. Существуют две основные версии SAPI (SAPI 4 и SAPI 5), которые не совместимы друг с другом.

SAPI 4 (Microsoft Speech API 4.0)

Все голоса, поддерживающие только SAPI 4, устарели и более не рекомендуются к использованию. Воспользуйтесь свежими версиями речевых синтезаторов.

SAPI 5 (Microsoft Speech API 5.x)

Ольга Яковлева разработала многоязычный синтезатор речи с открытым исходным кодом RHVoice (доступны русский, английский, грузинский, киргизский, португальский, татарский, украинский языки и эсперанто):

  • Описание синтезатора речи
  • Версия для Windows

Ярослав Козак из Львова создал украинский синтезатор речи UkrVox. За основу был взят голос диктора украинского радио Игоря Мурашко.

  • UkrVox

Для получения высокого качества звучания рекомендуется использовать платные коммерческие синтезаторы речи (Acapela Group, Cepstral, IVONA и др.).

Коммерческие (платные) синтезаторы речи:

  • Acapela Group (demo)
  • Alfanum (demo)
  • Cepstral (demo)
  • IVONA (demo)
  • Nuance/Cerence (demo)
  • ReadSpeaker (demo)

Для русскоязычных пользователей интерес представляют следующие голоса:

  • Alyona (Acapela Group)
  • Katya, Milena и Yuri (Nuance)
  • Nicolai (Digalo - Acapela Elan Speech Cube)
  • Tatyana и Maxim (IVONA)

Ознакомительные версии русских речевых движков доступны для скачивания на сайте электронного журнала WebSound.ru и на сайте Мифотека.

Приобрести русские компьютерные голоса от компаний IVONA и Nuance можно на сайте фирмы Harpo. Русский голос от фирмы Acapela Group входит в состав программного продукта Infovox 4: купить его можно на сайте российской компании «Элита Групп».

Microsoft Speech Platform

Microsoft Speech Platform - набор инструментов, позволяющих разработчикам строить решения с распознаванием голоса и преобразованием текста в речь.

Для работы синтезатора речи необходимо загрузить и установить следующие компоненты Microsoft Speech Platform (версия 11.0):

  • Microsoft Speech Platform - Runtime – серверная часть платформы, предоставляющая API для программ (файл x86_SpeechPlatformRuntime\SpeechPlatformRuntime.msi).
  • Microsoft Speech Platform - Runtime Languages – набор языков для серверной части. На данный момент предлагаются голоса для 26 языков, в том числе русский голос Elena (файлы, чьи имена начинаются с "MSSpeech_TTS_").

Теги (управляющие команды), которые используются для голосов SAPI 5, могут применяться и для голосов Microsoft Speech Platform. Но следует помнить, голоса SAPI 5 и голоса Microsoft Speech Platform несовместимы друг с другом, поэтому нельзя переключаться между ними при помощи тегов Voice или Lang.


Командная строка

"Балаболка" может получать параметры из командной строки:

balabolka.exe [-опции] [имя_файла] [аудиофайл] [голос]

Параметр голос указывается следующим образом:

имя_голоса [rСкорость] [pВысота]

имя_файла
открыть текстовый файл

-c
прочесть вслух текст из буфера обмена

-c голос
выбрать голос и прочесть вслух текст из буфера обмена

-m
минимизировать программу при запуске

-r имя_файла
открыть файл и начать чтение вслух с начала текста

-r имя_файла голос
открыть файл, выбрать голос и начать чтение вслух с начала текста

-s имя_файла аудиофайл
открыть файл и сохранить текст в виде аудиофайла (WAV, MP3, MP4, OGG или WMA)

-s имя_файла аудиофайл голос
открыть файл, выбрать голос и сохранить текст в виде аудиофайла

-q
закрыть программу после окончания чтения

Для того, чтобы программа выбрала определенный голос (речевой синтезатор), достаточно указать одно слово из его названия; например: Boris. Программа выполнит поиск подходящего голоса сначала в списке речевых "движков" SAPI 5 и Microsoft Speech Platform, затем SAPI 4.

Можно одновременно указывать несколько опций:

-rm имя_файла
минимизировать программу при запуске и начать чтение файла

-rq имя_файла
выполнить чтение файла и закрыть программу

Например:

balabolka.exe book.txt

balabolka.exe book.txt "Speech Cube Russian"

balabolka.exe -rmq book.txt

balabolka.exe -sq "c:\my books\book.txt" "c:\my files\book.wav"

balabolka.exe -s "c:\my books\book.txt" "c:\my files\book.wav" Katerina

balabolka.exe -r "c:\my books\book.txt" Nicolai r2

balabolka.exe -c "Cepstral Callie"

Если в командной строке необходимо указать не имя текстового файла, а строку текста для чтения, следует добавить в опции специальный параметр-модификатор:

-n [строка_текста]
присутствие этого параметра означает, что в командной строке вместо имени файла задана строка текста (текст должен быть заключен в кавычки)

Например:

balabolka.exe -n "Это текст."

balabolka.exe -rn "Еще один пример текста." Alyona

balabolka.exe -snq "Запись текста в аудиофайл." "c:\my files\book.mp3"


Проверка орфографии

Приложение использует для проверки орфографии библиотеку функций Common Speller API (CSAPI) и словари, входящие в состав программного продукта Microsoft Office 97/2000. Вы можете загрузить модуль проверки орфографии для русского языка с сайта программы "Балаболка".

При редактировании текста пользователь может использовать контекстное меню для проверки правописания. Щелкнув правой кнопкой на ошибочном слове, Вы можете выбрать правильное слово из предложенных вариантов или, выбрав пункт контекстного меню "Добавить слово в словарь", вставить текущее слово в пользовательский словарь.

Также существует возможность редактирования описания с использованием диалогового окна "Правописание" (чтобы открыть его, следует выбрать пункт главного меню "Текст | Правописание"). Окно содержит следующие кнопки:

  • Заменить - заменить текущее слово правильным словом из предложенного списка вариантов.
  • Заменить все - заменять во всех случаях использования текущее слово на правильное слово из предложенного списка вариантов.
  • Пропустить - игнорировать текущее слово и перейти к следующему ошибочному слову.
  • Пропустить все - игнорировать текущее слово во всех случаях его использования. Данное слово не будет считаться ошибочным в ходе всего сеанса работы пользователя с программой "Балаболка".
  • Добавить - вставить текущее слово в пользовательский словарь.

"Пользовательский словарь" представляет собой список слов в форме текстового файла; этот файл имеет расширение *.dic. Словарь используется при проверке орфографии для добавления тех слов, которые пользователь не считает ошибочными. Microsoft Office 97/2000 хранит пользовательский словарь здесь: c:\Program Files\Common Files\Microsoft Shared\Proof\custom.dic.

"Балаболка" допускает одновременное применение двух словарей для проверки орфографии (для этого следует поставить "галочку" в пункте Второй язык). В этом случае диалоговое окно для проверки правописания будет недоступно; можно использовать лишь контекстное меню.

Программа может использовать Hunspell (hunspell.github.io). Hunspell - это программа для проверки орфографии, предназначенная для языков со сложной системой словообразования и обширной морфологией. Hunspell используется в пакете офисных приложений OpenOffice.org и браузере Mozilla Firefox.

Словари для Windows можно скачать с сайта "Балаболки".

Приложение позволяет использовать систему проверки правописания, встроенную в операционную систему. Spell Checking API доступен в Windows 8 и выше.


Поиск и замена текста

Программа позволяет использовать в окнах "Найти" и "Заменить" большинство из специальных кодов, которые применяются в Microsoft Word (регистр букв имеет значение):

^p
знак абзаца
^t
знак табуляции
^nnn
знак ASCII (где nnn - код знака)
^0 nnn
знак ANSI (где 0 - это ноль, а nnn - код знака)
^U nnnnn
знак в кодировке Юникод (где nnnnn - код знака)
^+
длинное тире ( — )
^=
короткое тире ( – )
^^
знак крышки
^s
неразрывный пробел
^?
любой знак (только в поле "Найти")
^#
любая цифра (только в поле "Найти")
^$
любая буква (только в поле "Найти")
^c
содержимое буфера обмена Windows (только в поле "Заменить на")
^&
содержимое поля "Найти" (только в поле "Заменить на")


Часто задаваемые вопросы

Вопрос

Получаю сообщение об ошибке "OLE error 80045042". Что это означает?

Ответ

Эта ошибка связана с тегами XML, присутствующими в читаемом тексте. Либо отсутствует завершающий тег, либо SAPI ошибочно принимает символы "<" или ">" за часть тега. Если не хотите использовать управляющие теги, удалите все символы "<" и ">" из текста (или замените их словосочетаниями "менее чем" и "более чем").

Вопрос

Где я могу найти SAPI 4?

Ответ

Для того, чтобы использовать голоса SAPI 4, необходимо скачать и установить пакет функций Microsoft Speech API 4.0 (824 КБ). Также, можно загрузить и установить Microsoft Speech Control Panel (840 КБ); после этого в панели управления добавится иконка панели настроек речи.

Вопрос

Где я могу найти SAPI 5?

Ответ

Windows XP и более поздние версии операционной системы уже содержит SAPI 5.

Вопрос

Как узнать, какие именно голоса установлены на моем компьютере?

Ответ

Список установленных голосов можно посмотреть здесь: Control Panel (Панель управления) -> Speech (Речь) -> Speech Properties (Свойства речи) -> Text To Speech (Преобразование текста в речь) -> Voice selection (Выбор голоса).

Вопрос

Как выполнить "тихую" установку программы?

Ответ

Установка программы в автоматическом режиме без показа диалогов ("тихая" установка) возможна при указании ключа -silent в командной строке.

Вопрос

Использую программу "Балаболка" и голос Alyona. При чтении некоторых слов или словосочетаний получаю сообщение об ошибке, в котором упоминается "\MyCvs\ressynth\selection_pagel\src\selector_engine.cpp". Что это за ошибка и как от нее избавиться?

Ответ

Это ошибка в движке голоса Alyona. Попробуйте добавить проблемное слово или словосочетание в Lexicon Manager, который входит в состав голоса. Также, рекомендуется загрузить и установить самую последнюю версию голоса с сайта Acapela Group.

Вопрос

Голос Nicolai произносит "пространство" каждый раз, когда в тексте встречается неразрывный пробел (символ ALT+0160). Как это исправить?

Ответ

Программа может автоматически заменять неразрывные пробелы обычными пробелами во время чтения. Выберите пункт главного меню "Настройки | Общие настройки", в открывшемся окне перейдите на вкладку "Чтение" и поставьте "галочку" в пункте "Игнорировать символы во время чтения". Добавьте неразрывный пробел в список игнорируемых символов: нажмите клавишу ALT и напечатайте "0160" на цифровом блоке клавиатуры. Можно указать и другие символы, которые голоса произносят вслух ("кавычки", "тире" и т.д.).

Вопрос

В моем компьютере установлены две звуковые карты. Как выбрать нужное аудиоустройство для воспроизведения речи?

Ответ

Можно осуществить выбор аудиоустройства в панели управления Windows; например, в разделе "Звук, речь, аудиоустройства", кнопка "Аудио выход" ("Audio Output"). Звуковую карту можно также выбрать в программе "Балаболка", при помощи пункта главного меню "Настройки | Выбор аудиоустройства".

Вопрос

Открываю в программе файл в формате DjVu, но текст отсутствует. В чем дело?

Ответ

Формат DjVu был разработан для хранения сканированных документов; в DjVu-файлах в сжатом виде хранятся графические изображения страниц книг, журналов и т.д. Также, формат DjVu предусматривает наличие текстового (OCR) слоя, который содержит текст со страницы. Файлы с текстовым слоем иногда обозначают как DjVu+OCR.

Программа "Балаболка" умеет извлекать данные лишь из текстового слоя. В случае, если текстовый слой недоступен, единственный метод получения текста - это выполнение оптического распознавания, например, в FineReader.

Вопрос

У меня 64-битная версия Windows. Установил 64-битный модуль Runtime для Microsoft Speech Platform, а также русский голос. Но в списке доступных голосов в программе "Балаболка" пусто. В чем дело?

Ответ

Программа "Балаболка" является 32-битным приложением. Поэтому необходимо установить 32-битный модуль Runtime для Microsoft Speech Platform.

Вопрос

Мне требуется удалить из текста тире, стоящие в начале строки. Как это сделать?

Ответ

Воспользуйтесь пунктом главного меню "Правка | Заменить". В строке "Найти" напишите ^p—, в строке "Заменить на" укажите ^p. Подробнее о специальных кодах, используемых для поиска и замены, можно узнать здесь.

Вопрос

Что такое Google Text-To-Speech?

Ответ

При использовании сервиса перевода на сайте Google, рядом с переведенным текстом есть кнопка "Listen" ("Слушать"). При ее нажатии браузер скачивает с сайта Google звуковой файл в формате MP3 с озвученным переводом. Доступен синтез речи для более чем 30 языков. Сервис предоставляет возможность озвучивать тексты длиной не более 100 символов. Программа "Балаболка" позволяет обойти это ограничение: большие тексты делятся на мелкие части, для каждой части текста скачивается звуковой файл, и все файлы объединяются в один аудиофайл (поддерживаются форматы WAV, MP3 и OGG).

Вопрос

Преобразую субтитры в звуковые файлы, используя голос Nicolai. В созданном аудиофайле весь текст произносится без пауз между репликами. В чем проблема?

Ответ

Старые версии голосов могут неправильно обрабатывать теги пауз, применяемые для преобразования субтитров. Рекомендуется использовать новые компьютерные голоса (такие как Tatyana или Milena).

Вопрос

Открываю в программе электронную книгу, но текст в окне "Балаболки" отсутствует. В чем дело?

Ответ

Этому может быть несколько объяснений. Во-первых, файл может представлять собой набор отсканированных изображений страниц бумажной книги. Во-вторых, электронная книга может иметь защиту DRM. Программа "Балаболка" не имеет возможности извлечь текст из книги с такой защитой (это было бы незаконно).

Вопрос

Меня не удовлетворяет, как программа "Балаболка" извлекает текст из файлов формата PDF. Могу я использовать другой способ для обработки файлов PDF?

Ответ

Процесс извлечения текста из файлов формата PDF достаточно сложен, так как файл PDF не содержит обычный текст. Вы можете использовать для извлечения текста внешнюю программу, поддерживающую передачу параметров в командной строке. Например, утилиту pdftotext.exe из состава проекта Xpdf. Скопируйте pdftotext.exe в подкаталог "utils" в папке программы "Балаболка", выберите пункт главного меню "Настройки | Импорт текста", вкладку "Внешние программы для импорта текста", и нажмите кнопку "Добавить". Задайте команду для использования pdftotext.exe:

%BFolder%\utils\pdftotext.exe -q -nopgbrk -enc UTF-8 %Input% %Output%

Введите имя для данного формата (например, "Xpdf Converter"), расширение файла ("PDF") и кодировку текста ("UTF-8"). После того, как будет выбран пункт Использовать вместо метода извлечения текста по умолчанию для данного формата файлов, программа сможет использовать внешнюю утилиту для извлечения текста из файлов формата PDF.

Вопрос

Что представляет собой "чтение по методу Spritz"?

Ответ

Это технология скорочтения, разработанная американской компанией Spritz. Суть метода состоит в разбиении текста на отдельные слова и их последовательном показе с цветовым выделением точки оптимального распознавания. Это позволяет достичь скорости чтения до 1000 слов в минуту без специальных тренировок. Основной принцип технологии заключается в том, что значительное количество времени теряется на перемещении взгляда от одного слова к другому. Показывая пользователю заменяющие друг друга слова на одном и том же месте, технология Spritz добивается эффекта, когда движение глаз сводится почти к нулю. Остается лишь вопрос в скорости, с которой мозг человека способен обрабатывать прочитанные слова и связывать их между собой.

Вопрос

Операционная система Windows 10, кроме голоса "Ирина", содержит также голос "Павел". Этот голос отображается в панели управления Windows, но в программе "Балаболка" в списке доступных голосов его нет. Как получить доступ к голосу "Павел" в Windows 10?

Ответ

Голос Microsoft Pavel Mobile предназначен для использования в приложениях из магазина Windows Store. По умолчанию к голосу нельзя обратиться при помощи функций SAPI 5. Однако, есть простой способ решить данную проблему. Скачайте архив, извлеките из него файл для соответствующей версии операционной системы ("pavel_x86.reg" для 32-битной версии и "pavel_x64.reg" для 64-битной версии), кликните правой кнопкой мыши на имени файла и выберите пункт "Слияние" в контекстном меню. Параметры голоса будут добавлены в системный реестр Windows, и голос станет доступен в программе "Балаболка".

Файлы для других языков можно скачать отсюда.

Вопрос

В некоторых текстах встречаются длинные адреса в Интернете. Как сделать так, чтобы компьютерный голос читал вслух адреса упрощенным способом?

Ответ

Можно решить эту проблему путем добавления правила в словарь формата REX. Это может быть, например, такое регулярное выражение:

((http|ftp|https)://)?(www\.)?([-a-zA-Z0-9@:%._\+~#\=]{2,256}\.[a-z]{2,6}\b)([-a-zA-Z0-9@:%_\+.~#?&//\=]*)=$4

В результате применения правила в тексте останется лишь имя домена (например, "test.ru").

Вопрос

Можно ли сделать так, чтобы при преобразовании документа в несколько звуковых файлов в качестве имени файла использовалась первая строка текста (например, "01 Глава первая.mp3", "02 Глава вторая.mp3")?

Ответ

В окне "Разделить текст на части и преобразовать в аудиофайлы" в поле "Шаблон для имени файла" вставьте переменную %FirstLine%. При делении текста программа заменит переменную на содержимое первой строки каждой части текста. Для того, чтобы вставить порядковый номер файла внутрь имени, используйте переменную %Number%.

Вопрос

Как сохранять речь в виде звуковых файлов формата FLAC?

Ответ

Программа позволяет использовать разные кодеки для создания звуковых файлов. Необходимо указать командную строку для вызова внешней программы; например, можно использовать утилиту FLAC.EXE, созданную некоммерческой организацией Xiph.Org Foundation. В программе "Балаболка" выберите пункт главного меню "Настройки | Аудиофайлы", вкладку "Другие кодеки". Нажмите кнопку "Добавить" и укажите значения для параметров: название (например, "Аудиофайлы FLAC"), расширение файла (FLAC) и командную строку.

C:\Utils\flac.exe %Input% -o %Output%

Переменная %Input% обозначает имя входного файла с расширением WAV (файл формата RIFF WAVE), переменная %Output% - имя звукового файла в формате FLAC. Файл FLAC.EXE можно скопировать в ту же папку, где находится "Балаболка"; переменная %BFolder% обозначает путь к этой папке.

Вопрос

Что такое интерфейс IFilter?

Ответ

Интерфейс IFilter - набор классов для извлечения текста из документов; фильтр IFilter реализован в виде плагина. Такие плагины используются для систем полнотекстового поиска. Некоторые фильтры устанавливаются автоматически с различными приложениями; другие плагины пользователь должен скачать и установить самостоятельно. Несколько бесплатных фильтров можно найти на сайте IFilter.org. Программа "Балаболка" является 32-битным приложением, поэтому необходимо установить 32-битные версии плагинов.

Вопрос

Как сменить голос во время чтения вслух?

Ответ

Можно воспользоваться тегами SAPI 5. Рекомендуется вставлять стартовый тег и парный ему завершающий тег внутрь одного и того же абзаца. Например:

<voice required="Name=Microsoft Irina Desktop">Привет, как дела?</voice>
<voice required="Name=IVONA 2 Tatyana">Всё в порядке.</voice>

Вопрос

Могу ли я использовать в видео для YouTube звуковые файлы, созданные в программе "Балаболка"?

Ответ

"Балаболка" является бесплатным программным продуктом, поэтому пользователь может использовать звуковые файлы, созданные приложением, по своему усмотрению. Но если применяется коммерческая версия компьютерного голоса, необходимо связаться с разработчиками этого голоса и приобрести специальную лицензию для его коммерческого использования. Такая лицензия позволит легально осуществлять распространение аудиоматериалов.

Фирмы, выпускающие компьютерные голоса, предоставляют два вида лицензий: для индивидуального использования (for personal use) и для коммерческого использования и распространения аудиоматериалов (for commercial use/audio broadcast). Если пользователь намерен использовать синтез речи в видео на YouTube или собирается включить звуковые файлы, созданные в программе "Балаболка", в состав своего программного продукта, необходимо приобрести у фирмы-изготовителя голоса соответствующую лицензию.

Например, вот что написано по этому поводу на сайте компании Cepstral: "Cepstral Personal voices are for personal use only and are NOT licensed for audio distribution. This means the audio you create is for your use only and cannot be shared with others or used in videos, presentations, or webpages. If you are interested in an audio distribution license, please contact sales."

Вопрос

Как использовать программу "Балаболка" совместно с программой для изменения голоса в реальном времени (например, AV Voice Changer Diamond или Voxal Voice Changer)?

Ответ

Потребуется установка дополнительного программного обеспечения, "виртуального аудиокабеля": он называется так потому, что создает набор виртуальных звуковых устройств, которые можно соединять между собой виртуальным кабелем. Можно порекомендовать, например, Virtual Audio Cable или VB-Cable. После установки и настройки программного обеспечения, в Балаболке в окне "Выбор аудиоустройства" необходимо выбрать виртуальный аудиокабель, который соединит выход программы для чтения вслух со входом программы для изменения голоса. Таким образом, две звуковые программы будут соединены в цепочку так, что вторая программа получает звук непосредственно от первой программы.


Использование списков замен

Панель словарей

Программа предоставляет возможность использования специальных списков замен ("словарей") для улучшения произношения слов. Это текстовые файлы, каждая строка которых содержит по одному правилу замены. В правилах могут использоваться регулярные выражения (имена таких файлов имеют расширение *.rex) или шаблоны (имена файлов с расширением *.dic). Правила в файлах *.bxd объединяют возможности двух других форматов.

Когда пользователь дает команду программе прочесть текст вслух, "Балаболка" проверяет по словарю, какие слова в тексте нуждаются в коррекции произношения, и применяет соответствующие правила замены из словаря. Затем измененный текст пересылается в буфер компьютерного голоса, и голос читает текст вслух.

Чтобы просмотреть список словарей, используемых программой, необходимо выбрать пункт главного меню "Вид | Показывать | Панель словарей" или нажать клавишу F11. В правой части главного окна программы отобразится список имен файлов; он разделен на две части:

  • верхняя часть - файлы со списками замен;
  • нижняя часть - файлы со списками омографов.

Разные компьютерные голоса могут использовать разные списки замен. Пользователь может выбрать нужные файлы в списке при помощи "галочек".

Для создания нового словаря необходимо щелкнуть правой кнопкой мыши на панели словарей, в появившемся контекстном меню выбрать пункт "Новый" и затем ввести имя файла нового словаря. После этого файл будет создан на диске, и его имя отобразится в списке на панели.

Если необходимо внести изменения в список замен, пользователь должен выбрать в списке нужный файл и нажать кнопку "Редактировать". Откроется окно редактирования списка замен. Для добавления нового правила замены необходимо заполнить поля "Произносить:" и "как:", затем нажать кнопку "Добавить". По завершению процесса редактирования следует нажать кнопку "Сохранить" и покинуть окно редактора.

Общий список правил

Если одновременно отмечены "галочками" несколько имен файлов в списке, правила из этих словарей автоматически объединяются программой в единый список, хранящийся в памяти компьютера. Чтобы посмотреть этот список, необходимо щелкнуть правой кнопкой мыши на панели словарей и выбрать пункт "Показать список" в контекстном меню.

Когда правила из разных файлов объединяются в общий список, это происходит следующим образом:

  • правила из файлов *.bxd добавляются последовательно, одно за другим, как они расположены внутри словаря; файлы обрабатываются в алфавитном порядке их имен.
  • такой же порядок применения для правил из файлов *.rex;
  • все правила из файлов *.dic сортируются таким образом, что сначала идут правила, чувствительные к регистру букв, затем правила, не чувствительные к регистру; после этого правила сортируются еще раз по длине шаблона - те, что имеют наибольшую длину шаблона в символах, располагаются ближе к началу списка.

Порядок следования правил внутри списка важен в тех случаях, когда к одному и тому же слову в тексте могут быть применены несколько правил. Программа "Балаболка" выполняет замены последовательно, то есть второе правило будет применено к тексту, который уже был изменен первым правилом из списка. В этом случае порядок применения правил играет большую роль.

Правила из файлов с расширением *.rex будут применены к тексту в первую очередь. Чтобы проверить результат применения правил из списков замен к тексту в текущем документе, можно воспользоваться пунктами главного меню "Настройки | Коррекция произношения | Показать изменённый текст" и "Настройки | Коррекция произношения | Статистика замен".

Дополнительные инструменты

Чтобы найти пары правил, которые окажут воздействие на один и тот же текст, необходимо выбрать пункт главного меню "Настройки | Коррекция произношения | Найти пары правил". Это позволит отыскать те правила, которые никогда не будут применены из-за того, что другое правило уже модифицировало данное выражение в тексте.

Чаще всего коррекция произношения требуется для имен людей, географических названий, кличек животных, названий организаций и т.д. Поиск таких слов в текущем документе можно облегчить при помощи пункта главного меню "Настройки | Коррекция произношения | Найти имена в тексте". Программа "Балаболка" предоставляет возможность просмотреть три списка найденных слов:

  • имена (слова, которые в текущем документе всегда начинаются с заглавной буквы);
  • все слова с первой заглавной буквой;
  • все слова, обнаруженные в тексте документа.

При перемещении по списку слов программа будет автоматически читать слово вслух. Если слово читается неправильно, его произношение можно исправить, добавив новое правило в словарь. Список найденных имен можно отсортировать или в алфавитном порядке, или по частоте использования слова в тексте. Также, можно запретить показывать слова, которые встречаются в тексте всего несколько раз; это позволит ускорить проверку списка имен, найденных в текущем документе.

Профили

Текущие настройки панели словарей могут быть сохранены в виде "профилей". Для создания и редактирования профилей необходимо использовать пункт главного меню "Настройки | Коррекция произношения | Профили".


REX-файлы со списками замен

Каждая строка такого файла содержит шаблон регулярного выражения и текст, которым будет заменен данный шаблон в тексте; между ними стоит знак равенства. Регулярные выражения (regular expressions) - универсальное средство быстрого выполнения любых сложных операций с текстом. "Балаболка" использует библиотеку, реализующую работу регулярных выражений в стиле Perl.

Замены в тексте осуществляются в том порядке, в котором правила расположены в REX-файле. Например, для двух строк:

крыса=мышь
мышь=хомяк

слово "крыса" будет заменено на "хомяк". Следует быть внимательными и обращать внимание не только на синтаксис правил замены, но и на последовательность их расположения.

Строки комментариев начинаются со знака "решетка" (#).

По умолчанию программа не учитывает различий между прописными и строчными буквами при рассмотрении шаблонов регулярных выражений. Если регистр букв имеет значение, необходимо добавить символ "@" в начало строки. Например:

@МАГ=Международная ассоциация геодезии

Ниже приводится список специальных символов, применяемых в регулярных выражениях.

Символы | Описание
\ | Для символов, которые обычно рассматриваются литерально, указывает, что следующий символ является специальным символом и не интерпретируется литерально. Например, "b" совпадает с символом "b". Поместив обратную наклонную черту перед "b", то есть "\b", придаём символу специальное значение - "граница слова". Или: Для символов, которые обычно рассматриваются как специальные, указывает, что следующий символ является не специальным символом и должен интерпретироваться литерально. Например, "*" это специальный символ. Чтобы искать "*" литерально, поставьте перед ним обратную наклонную черту; например, "a\*" совпадает с "a*". Комбинация символов "\=" соответствует символу "=".
^ | Совпадение с начала ввода. Например, "^A" не совпадает с "A" в строке "an A", но совпадает с первой "A" в строке "An A".
$ | Совпадение в конце ввода. Например, "t$" не совпадает с "t" в "eater", но совпадает с ним в "eat".
* | Совпадение с предыдущим символом ноль или более раз. Например, "bo*" совпадает с "boooo" в "A ghost booooed" и с "b" в "A bird warbled", но ничего не совпадает в "A goat grunted".
+ | Совпадение с предыдущим символом один или более раз. Эквивалентно {1,}. Например, "a+" совпадает с "a" в "candy" и со всеми "a" в "caaaaaaandy".
? | Совпадение с предыдущим символом ноль или один раз. Например, "e?le?" совпадает с "el" в "angel" и с "le" в "angle".
. | Совпадает с любым одиночным символом, исключая символ новой строки. Например, ".n" совпадает с "an" и "on" в "nay, an apple is on the tree", но не с "nay".
(x) | Совпадает с "x" и запоминает совпадение. Это называется "захватывающие скобки". Использовать подстроку, которая была запомнена, можно при помощи специального символа $N, где N - это порядковый номер подстроки в шаблоне. Например, "(foo)" совпадает с и запоминает "foo" в "foo bar".
x|y | Совпадает с "x" или с "y". Например, "green|red" совпадает с "green" в "green apple" и с "red в "red apple".
{n} | Где n это положительное целое. Совпадает точно с n появлений предшествующего элемента. Например, "a{2}" не совпадает с "a" в "candy", но совпадает со всеми "a" в "caandy" и с первыми двумя "a" в "caaandy".
{n,} | Где n это положительное целое. Совпадает с не менее, чем n появлений предшествующего элемента. Например, "a{2,}" не совпадает с "a" в "candy", но совпадает со всеми "a" в "caandy" и в "caaaaaaandy".
{n,m} | Где n и m это положительные целые. Совпадает с минимум n и с максимум m появлений предшествующего элемента. Например, "a{1,3}" не совпадает ни с чем в "cndy", совпадает с "a" в "candy", с первыми двумя "a" в "caandy" и с первыми тремя "a" в "caaaaaaandy". Обратите внимание, что при совпадении с "caaaaaaandy", совпадает "aaa", хотя оригинальная строка содержит больше "a".
[xyz] | Набор символов. Совпадение с одним из символов в скобках. Можно специфицировать диапазон символов с помощью дефиса. Например, [abcd] это то же самое, что [a-d]. Совпадает с "b" в "brisket" и с "c" в "ache".
[^xyz] | Отрицающий набор символов. То есть совпадение с тем, что не заключено в скобки. Можно специфицировать диапазон символов с помощью дефиса. Например, [^abc] это то же самое, что [^a-c]. С начала совпадает с "r" в "brisket" и с "h" в "chop".
\b | Совпадает с границей слова, такой как пробел. Например, "er\b" совпадает с "er" в "never", но не с "er" в "verb".
\B | Совпадение не в конце слова. Например, "ea*r\B" совпадает с "ear" в "never early".
\d | Совпадает с цифрой. Эквивалентно [0-9]. Например, "\d" или "[0-9]" совпадает с "2" в "B2 is the suite number".
\D | Совпадает с символом, не являющимся цифрой. Эквивалентно[^0-9]. Например, "\D" или "[^0-9]" совпадает с "B" в "B2 is the suite number".
\f | Совпадает с прогоном (form-feed) страницы.
\n | Совпадает с символом новой строки.
\r | Совпадает с "возвратом каретки".
\s | Совпадает с одиночным пробельным символом. Эквивалентно "[ \f\n\r\t\v]".
\S | Совпадает с одиночным символом, отличным от пробелов. Эквивалентно "[^ \f\n\r\t\v]".
\t | Совпадает с символом табуляции.
\v | Совпадает с символом вертикальной табуляции.
\w | Совпадает с любым алфавитным или цифровым символом, включая символ подчёркивания. Эквивалентно "[A-Za-z0-9_]". Например, "\w" совпадает с "a" в "apple", "5" в "5,28" и "3" в "3D".
\W | Совпадает с любым не-словом. Эквивалентно "[^A-Za-z0-9_]". Например, "\W" или "[^$A-Za-z0-9_]" совпадает с "%" в "50%".
\num | Где num это положительное целое. Обратная ссылка на последнее совпадение подстроки. Например, "(.)\1" совпадает с двумя рядом стоящими одинаковыми символами.
\xhh | Совпадает с символом с кодом hh (два шестнадцатеричных числа). Например, "\x41" совпадает с буквой "A".
\x{hhhh} | Совпадает с символом с кодом hhhh (четыре шестнадцатеричных числа) из таблицы символов Юникод. Например, "\x{00dc}" совпадает с буквой "Ü".

Программа "Балаболка" поддерживает специальные символы для изменения регистра букв.

Символы | Описание
\U | Переводит все последующие буквы в верхний регистр, пока не встретятся символы \L или \E.
\L | Переводит все последующие буквы в нижний регистр, пока не встретятся символы \U или \E.
\E | Завершает действие символов \U и \L.
\u | Переводит следующую букву в верхний регистр.
\l | Переводит следующую букву в нижний регистр.

Например, выражение:

(тест)=\U$1\E

заменит слово "тест" на "ТЕСТ".


DIC-файлы со списками замен

Каждая строка такого файла содержит шаблон и текст, которым будет заменен данный шаблон в тексте; между ними стоит знак равенства (=). В первую очередь рассматриваются шаблоны с максимальным количеством букв.

Строки комментариев начинаются со знака "решетка" (#).

По умолчанию программа не учитывает различий между прописными и строчными буквами при рассмотрении шаблонов. Если регистр букв имеет значение, необходимо добавить символ "$" в начало строки. Например:

$МАГ=Международная ассоциация геодезии

По умолчанию шаблон представляет из себя отдельное слово (или несколько слов), ограниченное пробелами или знаками препинания. Если шаблон является частью слова, то для обозначения того, что перед текстом или после него могут быть любые символы, используется символ "*" (звездочка). Например:

авто*=авта

Данное правило будет применено к словам "автомобиль", "автокатастрофа" и т. д. Чтобы использовать в тексте специальные символы ("#", "*", "$", "="), необходимо записать их дважды в соответствующем месте, например:

**=звёздочка

В этом случае отдельный символ "*" в тексте будет читаться как "звёздочка".

Чтобы поменять ударение, в текст можно вставлять пробелы или двойные гласные буквы, например: "бигудии", "про скакать". Приёмы изменения ударений могут быть различны и зависят от особенностей голосового движка. Иногда приходится поэкспериментировать, чтобы добиться нужного результата.

Необходимо заметить, что словари для Digalo Russian Nicolai не всегда удастся использовать для голосов SAPI 5, так как угловые скобки, обозначающие ударение в словарях для голосов Digalo, используются для обозначения служебных тэгов в SAPI 5.

Чтобы избежать пауз при чтении текста, можно заранее уменьшить список замен, оставив только те из них, которые действительно будут применены программой. Для этого воспользуйтесь пунктом главного меню "Настройки | Коррекция произношения | Статистика замен"; программа покажет список тех замен, которые были выполнены в текущем тексте; данный список можно сохранить как новый словарь коррекции произношения и использовать для чтения текста вслух.


Омографы

Слова, одинаковые по написанию, но различающиеся произношением, называются омографами, иногда их также называют графическими омонимами. Одной из основных причин возникновения омографов в русском языке является различное ударение: зáмок – замóк. Омографы также возникают за счет того, что в текстах обычно не проставляют точки над ё, например: небо (нéбо и нёбо), берет (берéт и берёт).

Омографы другого типа в русском языке весьма редки. Иногда они возникают из-за различного прочтения буквы ч: У него, сердечного, сердечная болезнь или Конечно, это множество конечно (оба раза в первом случае звук [ш], во втором – [ч']). Словоформы теста, тесту, тестом, в тесте могут относиться к разным словам и в связи с этим по-разному читаться: пирожки из слоеного теста (с мягким первым т), результаты психологического теста (с твердым т).

В программе используются специальные словари омографов (файлы с расширением *.hmg). В состав "Балаболки" входят словари омографов для речевых движков Digalo Russian Nicolai (SAPI 4) и Loquendo Olga. Каждая строка такого файла содержит шаблон и варианты текста, которыми можно заменить данный шаблон; между ними стоит знак равенства (=). Варианты замен должны быть перечислены через запятую. Например, в словаре для голоса Nicolai:

замок=за<мок,замо<к

В словаре для голоса Olga:

замки=з^амки,замки`
хлопок=хл^опок,хлоп^ок

По умолчанию программа не учитывает различий между прописными и строчными буквами при рассмотрении шаблонов. Если регистр букв имеет значение, необходимо добавить символ "$" в начало строки:

$Толстой=Т^олстой,Толст^ой

Для каждого омографа программа "Балаболка" позволяет добавлять список фраз, замена которых будет осуществляться автоматически (закладка "Фразы с омографом" в редакторе омографов). Например:

лихом=ли<хом,лихо<м

на лихом коне=лихо<м
не поминайте лихом=ли<хом

При выполнении поиска омографов в тексте (пункт главного меню "Текст | Искать омографы") эти выражения будут автоматически заменяться на новые. Если необходимо учитывать регистр букв внутри выражения, следует добавить символ "$" в начало фразы:

$Толстой=Т^олстой,Толст^ой

$Лев Николаевич Толстой=Толст^ой

Подстановочный символ "*" может использоваться для обозначения целых слов или частей слова (несколько букв в начале или в конце слова). Например:

берега=бе<рега,берега<

*ые берега=берега<
у * берега=бе<рега


Теги SAPI 4

Для коррекции произношения используются так называемые теги (tags). Теги - это текстовые управляющие команды, вставляемые в читаемый текст, причем они сами не читаются, а подают синтезатору (речевому движку) справочную информацию (команды) по изменению тех или иных параметров чтения текста. Теги обрабатываются речевым синтезатором и, как следствие, не весь спектр тегов Speech API 4.0 наверняка поддерживается всеми движками. Однако наиболее часто употребляемые и распространенные теги, существующие начиная с предыдущих версий SAPI, можно использовать без раздумья. Более того, если введенный тег ошибочен или не поддерживается движком, то модуль прочитает его как набор символов.

  • Синтаксис
  • Chr
  • Com
  • Ctx (некоторые речевые движки могут не поддерживать этот тег)
  • Dem (новый в SAPI 4.0 -- некоторые речевые движки могут не поддерживать этот тег)
  • Emp (некоторые речевые движки могут не поддерживать этот тег)
  • Eng
  • Mrk
  • Pau
  • Pit
  • Pra (новый в SAPI 4.0 -- некоторые речевые движки могут не поддерживать этот тег)
  • Prn (некоторые речевые движки могут не поддерживать этот тег)
  • Pro (некоторые речевые движки могут не поддерживать этот тег)
  • Prt (некоторые речевые движки могут не поддерживать этот тег)
  • RmS (новый в SAPI 4.0 -- некоторые речевые движки могут не поддерживать этот тег)
  • RmW (новый в SAPI 4.0 -- некоторые речевые движки могут не поддерживать этот тег)
  • RPit (новый в SAPI 4.0 -- некоторые речевые движки могут не поддерживать этот тег)
  • RPrn (новый в SAPI 4.0 -- некоторые речевые движки могут не поддерживать этот тег)
  • RSpd (новый в SAPI 4.0 -- некоторые речевые движки могут не поддерживать этот тег)
  • Rst (новый в SAPI 4.0)
  • Spd
  • Vce (некоторые речевые движки могут не поддерживать этот тег)
  • Vol

Синтаксис

Так как теги являются текстовыми командами, которые внедряются в текст, то они должны строиться по определенным правилам, чтобы движок мог отделить команды от основного текста.

  • Все теги начинаются и заканчиваются символом наклонной черты ("бэкслэш") влево (\).
  • Отдельный бэкслэш не допускается в пределах тега. Чтобы включить бэкслэш в текстовый параметр тега, используйте двойную наклонную черту влево (\\).
  • Теги воспринимаются без учета регистра. Например, тег \vce\ - тот же самый тег, что и \VCE\.
  • Теги восприимчивы к пробелам, то есть не допускают в себе лишних пробелов. Например, \Rst\ и \ Rst \ - не одно и то же.

Chr

\Chr=string[[,string...]]\

Изменяет выражение голоса. Параметр может состоять из нескольких значений, перечисленных через запятую. Возможные значения:

"Angry"
"Business"
"Calm"
"Depressed"
"Excited"
"Falsetto"
"Happy"
"Loud"
"Monotone"
"Perky"
"Quiet"
"Sarcastic"
"Scared"
"Shout"
"Tense"
"Whisper"

Тип "Normal" соответствует обычному голосу.

Пример: \Chr="Angry"\

Параметр | Описание
string | Строка, которая определяет характеристики голоса.

Com

\Com=string\

Комментарий. Комментарии не читаются.

Пример: \Com="Это комментарий."\

Параметр | Описание
string | Текст комментария.

Ctx

\Ctx=string\
Примечание: Некоторые речевые движки могут не поддерживать этот тег.

Определяет содержание читаемого текста.

Пример: \Ctx="Unknown"\

Параметр | Описание
string | Строка, определяющая содержание читаемого текста.

Тег может иметь одно из следующих значений:

Значение | Описание
"Address" | Адрес и/или номер телефона
"C" | Код на языке программирования C или C++
"Document" | Текст документа
"E-Mail" | Адрес электронной почты
"Numbers" | Число, дата, время и т.д.
"Spreadsheet" | Электронная таблица
"Unknown" | Неопределенное содержание (значение по умолчанию)
"Normal" | Нормальный режим чтения

Emp

\Emp\
Примечание: Некоторые речевые движки могут не поддерживать этот тег.

Выделяет интонацией слово, стоящее непосредственно за тегом.

Пример: the \Emp\truth, the \Emp\whole truth, and nothing \Emp\but the truth.

Dem

\Dem\
Примечание: Некоторые речевые движки могут не поддерживать этот тег.

Действие тега обратно предыдущему.

Eng

\Eng;GUID:command\
\Eng:command\

Посылает специальную программу речевому движку с идентификатором GUID.

Параметр | Описание
GUID | Глобальный уникальный идентификатор речевого движка.
command | Текст команды.

Mrk

\Mrk=number\

Ставит в текст закладку.

Пример: \Mrk=75000\

Параметр | Описание
number | Номер закладки.

Число 0 является зарезервированным (\Mrk=0\), поэтому не может использоваться в качестве номера закладки.

Pau

\Pau=number\

Устанавливает паузу на указанное количество миллисекунд.

Пример: \Pau=1000\

Параметр | Описание
number | Количество миллисекунд в паузе.

Pit

\Pit=number\

Указывает высоту звука в герцах.

Пример: \Pit=90\

Параметр | Описание
number | Высота звука, в герцах.

Pra

\Pra=value\
Примечание: Некоторые речевые движки могут не поддерживать этот тег.

Устанавливает диапазон для высоты звука.

Параметр | Описание
value | Диапазон для высоты звука, в герцах.

Prn

\Prn=text=pronunciation\
Примечание: Некоторые речевые движки могут не поддерживать этот тег.

Включает замену некоторого выражения на необходимое читаемое выражение.

Пример: \Prn=томат=томаат\

Параметр | Описание
text | Выражение.
pronunciation | Фонетический эквивалент для произносимого текста.

Текст выражения пишется без кавычек. Тег (\Prn=томат\) отменяет сделанную замену.

Слова заменяются с учетом регистра, т. е. слово "Томат" переопределяться не будет.

Pro

\Pro=number\
Примечание: Некоторые речевые движки могут не поддерживать этот тег.

При значении 0 выключает правила чтения. Текст будет читаться без учета управляющих тегов и правил изменения интонации. Теги будут читаться по символам, а выражения - монотонно. При значении 1 данный режим отключается.

Пример: \Pro=0\

Параметр | Описание
number | Код включения/отключения.

Prt

\Prt=string\
Примечание: Некоторые речевые движки могут не поддерживать этот тег.

Указывает, к какой части речи относится следующее слово.

Пример: \prt="Abbr"\

Параметр | Описание
string | Часть речи.

Тег может иметь одно из следующих значений:

Значение | Описание
"Abbr" | Сокращение
"Adj" | Прилагательное
"Adv" | Наречие
"Card" | Количественное числительное
"Conj" | Союз
"Cont" | Стяжение, сокращение, например, "can't" вместо "cannot"
"Det" | Существительное перед прилагательным
"Interj" | Междометие
"N" | Существительное
"Ord" | Порядковое числительное
"Prep" | Предлог
"Pron" | Местоимение
"Prop" | Существительное в виде имени собственного
"Punct" | Пунктуация
"Quant" | Существительное, которое выражает количество и предшествует прилагательному, например, "семь зеленых яблок"
"V" | Глагол

RmS

\RmS=number\
Примечание: Некоторые речевые движки могут не поддерживать этот тег.

При значении 1 происходит чтение слов по буквам, при значении 0 - по словам.

Параметр | Описание
number | Код переключения

RmW

\RmW=number\
Примечание: Некоторые речевые движки могут не поддерживать этот тег.

При значении 1 между словами вставляются небольшие паузы, значение 0 восстанавливает режим без пауз.

Параметр | Описание
number | Код переключения.

RPit

\RPit=value\
Примечание: Некоторые речевые движки могут не поддерживать этот тег.

Устанавливает относительное значение высоты звука.

Параметр | Описание
value | Относительное значение высоты звука. 100 - значение по умолчанию.

RPrn

\RPrn=value\
Примечание: Некоторые речевые движки могут не поддерживать этот тег.

Устанавливает относительный диапазон для высоты звука.

Параметр | Описание
value | Относительный диапазон для высоты звука. 100 - значение по умолчанию.

RSpd

\RSpd=value\
Примечание: Некоторые речевые движки могут не поддерживать этот тег.

Устанавливает относительную скорость речи.

Параметр | Описание
value | Относительная скорость. 100 - значение по умолчанию.

Rst

\Rst\

Сбрасывает все установленные до него управляющие теги.

Spd

\Spd=number\

Изменяет скорость речи.

Пример: \Spd=120\

Параметр | Описание
number | Скорость речи (количество слов в минуту).

Vce

\Vce=charact=value[[,charact=value]]\
Примечание: Некоторые речевые движки могут не поддерживать этот тег.

Заставляет движок изменить синтезатор на другой в соответствии с параметрами.

Параметр | Описание
charact | Параметр речевого движка.
value | Значение параметра.

В теге может участвовать несколько параметров с указанными значениями. Например, смена текущего голоса на мужской английский задается так:

\Vce=Gender="Male",language="British English"\

Тег дает команду движку использовать синтезатор английского языка с мужским голосом.

В charact=value возможны следующие параметры:

  • Language=язык. Язык в специальном формате движка.
  • Accent=акцент. Акцент. Например, если Language="English" и Accent="French", то движок будет говорить на английском языке с французским акцентом.
  • Dialect=диалект. Диалект (так же в специальном формате движка).
  • Gender=пол. Пол (обычно: "Male", "Female" или "Neutral").
  • Speaker=диктор. Имя голоса синтезатора.
  • Age=возраст. Возраст.
  • Style=стиль. Стиль голоса. Например: "Business", "Casual", "Computer", "Excited" или "Singsong".
Возраст | Описание
"Baby" | 1 год
"Toddler" | 3 года
"Child" | 6 лет
"Adolescent" | 14 лет
"Adult" | 20-60 лет
"Elderly" | Старше 60 лет

Vol

\Vol=number\

Изменяет громкость речи.

Пример: \Vol=32768\

Параметр | Описание
number | Уровень громкости.

Значения от 0 до 65535 линейно изменяют громкость на обоих каналах. Если нужно изменить громкость на разных каналах, то надо взять число типа двойного слова (double word) и в старшую часть (левое слово) записать значение для левого канала, а в младшую (правое слово) - для правого. Например, значение 65536 устанавливает максимальную громкость на левом канале и минимальную на правом.


Теги SAPI 5

Для коррекции произношения используются так называемые теги (tags). Теги - это текстовые управляющие команды, вставляемые в читаемый текст, причем они сами не читаются, а подают синтезатору (речевому движку) справочную информацию (команды) по изменению тех или иных параметров чтения текста. В SAPI 5 для записи тегов используется формат XML (eXtensible Markup Language). Различные речевые синтезаторы могут поддерживать различные наборы тегов; список поддерживаемых тегов следует искать в документации речевого движка.

Каждый элемент XML состоит из стартового тега <тег>, завершающего тега </тег> и текста между этими двумя тегами. Если элемент пустой и текст отсутствует, то тег может быть записан так: <тег/>.

Используйте пункт главного меню "Текст | Вставить тег XML" для вставки тегов в текст, выделенный внутри документа. Стартовый тег будет располагаться в начале выделенного текста, завершающий тег - в конце.

Volume

Устанавливает громкость речи. Этот тег может быть пустым. В таком случае он действует на весь последующий текст. Если тег ограничивает фрагмент текста, то он действует только на этот фрагмент. Тег имеет один обязательный атрибут: Level. Значение атрибута должно быть целым и находиться между 0 и 100.

<volume level="50"> Этот текст читается с громкостью 50. <volume level="100"> Этот текст читается с громкостью 100. </volume> </volume>
<volume level="80"/> Весь следующий текст читается с громкостью 80.

Значение 100 соответствует нормальной громкости голоса. Более низкие значения представляют процент от нормы. То есть 50 дает 50% от полной громкости.

Rate

Устанавливает скорость чтения. Этот тег может быть пустым; в таком случае он действует на весь последующий текст. Если тег ограничивает фрагмент текста, то он действует только на этот фрагмент. Тег имеет два атрибута, один из которых должен присутствовать – Speed или AbsSpeed. Значения атрибутов должны быть целыми и находиться между -10 и 10. AbsSpeed управляет абсолютной скоростью голоса, Speed работает относительно текущей скорости.

<rate absspeed="5"> Этот текст читается со скоростью пять. <rate absspeed="-5"> Этот текст читается со скоростью минус пять. </rate> </rate>
<rate absspeed="10"/> Весь следующий текст читается со скоростью десять.

Атрибут Speed управляет относительной скоростью. Общая скорость получается суммированием всех значений атрибутов Speed с текущей абсолютной скоростью.

<rate speed="5"> Этот текст читается со скоростью пять. <rate speed="-5"> Этот текст читается со скоростью ноль. </rate> </rate>

Значение 0 соответствует нормальной скорости, положительные значения дают ускоренный темп, отрицательные – замедленный.

Pitch

Устанавливает высоту звука. Этот тэг может быть пустым. В таком случае он действует на весь последующий текст. Если тег ограничивает фрагмент текста, то он действует только на этот фрагмент. Тег имеет два атрибута, один из которых должен присутствовать – Middle или AbsMiddle. Значения атрибутов должны быть целыми и находиться между -10 и 10. AbsMiddle управляет абсолютной высотой тона голоса.

<pitch absmiddle="5"> Этот текст читается на высоте пять. <pitch absmiddle="-5"> Этот текст читается на высоте минус пять. </pitch> </pitch>
<pitch absmiddle="10"/> Весь следующий текст читается на высоте десять.

Атрибут Middle управляет относительной высотой звука. Общая высота получается суммированием всех значений атрибутов Middle с текущей абсолютной высотой.

<pitch middle="5"> Этот текст читается на высоте пять. <pitch middle="-5"> Этот текст читается на высоте ноль. </pitch> </pitch>

Значение 0 соответствует нормальной высоте звука для голоса, положительные значения дают повышенный тон, отрицательные – пониженный.

Emph

Выделяет фрагмент текста при помощи измененного произношения. Тег не может быть пустым.

<emph> Ура </emph>!

Способы выделения могут быть различными в зависимости от особенностей того или иного голоса.

Spell

Читает фрагмент текста по буквам. Тег не может быть пустым.

<spell> Этот текст будет прочитан по буквам. </spell>
Этот текст будет читаться нормально.

Silence

Вставляет паузу. Тег должен быть пустым и содержать один обязательный параметр Msec – длительность паузы в миллисекундах.

Две секунды тишины <silence msec="2000"/> и чтение продолжается.

Pron

Осуществляет замену фрагмента текста на необходимое читаемое выражение. Выражение представляет собой набор фонем.

Тег содержит атрибут Sym - это набор фонем, разделенных пробелами.

<pron sym="h eh l l ow & w er l l d "/>
<pron sym="h eh l l ow & w er l l d"> hello world </pron>

Bookmark

Ставит в текст закладку. Тег должен быть пустым и содержать один параметр Mark, представляющий собой описание закладки.

Закладки нужны для того, чтобы программные приложения, работающие с речевыми синтезаторами, получали информацию о том, что прочитан тот или иной фрагмент текста.

Например, программа получит сообщение от речевого синтезатора, когда при чтении будет достигнута эта закладка:

<bookmark mark="bookmark_one"/>

а затем эта закладка:

<bookmark mark="bookmark_two"/>

PartOfSp

Указывает, к какой части речи относится слово. Тег не может быть пустым.

Тег имеет один атрибут Part - название части речи:

Значение | Описание
"Unknown" | Неизвестная часть речи
"Noun" | Существительное
"Verb" | Глагол
"Modifier" | Модификатор
"Function" | Функция
"Interjection" | Междометие

<partofsp part="noun"> А </partofsp> - это первая буква алфавита.

Context

Задает контекст слова. Тег не может быть пустым и имеет один атрибут Id - это строка, определяющая содержание читаемого текста (дата, время, адрес электронной почты и т.д.). Возможные значения атрибута содержатся в документации речевого синтезатора.

<context id="date_mdy"> 03/04/01 </context> should be March fourth, two thousand one.
<context id="date_dmy"> 03/04/01 </context> should be April third, two thousand one.
<context id="date_ymd"> 03/04/01 </context> should be April first, two thousand three.

Voice

Заставляет движок изменить синтезатор на другой в соответствии с параметрами (Age, Gender, Language, Name, Vendor и VendorPreferred). Тег может быть пустым (тогда его действие распространяется на весь последующий текст) или не быть пустым (тогда действие тега ограничивается лишь фрагментом текста).

Тег имеет два атрибута: Required ("обязательный") и Optional ("возможный"). Будет выбран речевой движок, который в наибольшей степени соответствует заданным параметрам. Если ни один подходящий голос не найден, то никаких изменений не произойдет.

Это предложение будет прочитано голосом по умолчанию. <voice required="Gender=Female;Age!=Child"> Это предложение будет прочитано женским взрослым голосом, если такой установлен на компьютере. <voice required="Age=Teen"> Это предложение будет прочитано детским голосом, если такой есть. </voice> </voice>

Lang

Заставляет движок изменить синтезатор на другой в соответствии с заданным языком. Тег может быть пустым (тогда его действие распространяется на весь последующий текст) или не быть пустым (тогда действие тега ограничивается лишь фрагментом текста).

Тег имеет только один атрибут LangId - это идентификатор языка, например, 419 (русский), 422 (украинский), 409 (американский английский) или 411 (японский). Хотя эти числа являются шестнадцатеричными, они записываются без приставки "0x".

Тег Lang является усеченным вариантом тега Voice с атрибутом Required, который содержит строку "Language=xxx".

<voice required="Language=409"> A U.S. English voice should speak this. </voice>
<lang langid="419"> Это предложение будет прочитано русским голосом. </lang>


Использование тега Context (SAPI 5)

Тег CONTEXT предоставляет голосу информацию о том, как интерпретировать специальные элементы текста: даты, числа, денежные единицы, адреса. Тег содержит атрибут ID, определяющий содержание текста внутри тега при помощи одного из возможных значений.

Например:

<context id="мой_контекст"> текст </context>

Реализация применения тега зависит от конкретного синтезатора речи. Также, некоторые голоса могут дополнительно иметь свои предопределенные значения для атрибута тега.

Тег может содержать больше одной строки текста. Например:

<context id="date_mdy"> 12/21/99 11/21/99 10/21/99 </context>

будет прочитан как "двадцать первое декабря девяносто девятого года двадцать первое ноября девяносто девятого года двадцать первое октября девяносто девятого года".

SAPI поддерживает следующие виды контекста:

  • Дата
  • Время
  • Число
  • Интернет
  • Электронная почта
  • Адрес

Дата

Этот контекст обозначает, что числа, передаваемые голосу, представляют собой дату. Даты обычно имеют формат "число [разделитель] число [разделитель] число", где разделителем могут быть символы '.', '/' или '-', а числа варьируются от 01 до 12 для месяцев, от 01 до 31 для дней. Год представляет собой две или четыре цифры.

Атрибут тега может принимать значения:

date_mdy

Если присвоить атрибуту это значение, первая группа цифр будет воспринята голосом как месяц, вторая группа - день месяца, третья группа - год. В том случае, если год записан двумя цифрами, голос может прочесть его как число из двух цифр или четырех цифр.

Например:

<context id="date_mdy">12/21/99</context>

будет прочитан как "двадцать первое декабря девяносто девятого года"
или "двадцать первое декабря тысяча девятьсот девяносто девятого года"

<context id="date_mdy">12/21/1999</context>

будет прочитан как "двадцать первое декабря тысяча девятьсот девяносто девятого года"

date_dmy

Первая группа цифр будет воспринята как день, вторая группа - месяц, третья группа - год. Если год записан двумя цифрами, голос прочтет его как число из двух цифр или четырех цифр. Если год записан четырьмя цифрами, голос прочтет его как число из четырех цифр.

Например:

<context id="date_dmy">21.12.99</context>

будет прочитан как "двадцать первое декабря девяносто девятого года"
или "двадцать первое декабря тысяча девятьсот девяносто девятого года"

<context id="date_dmy">21-12-1999</context>

будет прочитан как "двадцать первое декабря тысяча девятьсот девяносто девятого года"

date_ymd

Первая группа цифр будет воспринята как год, вторая группа - месяц, третья группа - день месяца. Если год записан двумя цифрами, голос прочтет его как число из двух цифр или четырех цифр. Если год записан четырьмя цифрами, голос прочтет его как число из четырех цифр.

Например:

<context id="date_ymd">99-12-21</context>

будет прочитан как "двадцать первое декабря девяносто девятого года"
или "двадцать первое декабря тысяча девятьсот девяносто девятого года"

<context id="date_ymd">1999.12.21</context>

будет прочитан как "двадцать первое декабря тысяча девятьсот девяносто девятого года"

date_ym

Первая группа цифр будет воспринята как год, вторая группа - месяц. Если год записан двумя цифрами, голос прочтет его как число из двух цифр или четырех цифр. Если год записан четырьмя цифрами, голос прочтет его как число из четырех цифр.

Например:

<context id="date_ym">99-12</context>

будет прочитан как "декабрь девяносто девятого года"
или "декабрь тысяча девятьсот девяносто девятого года"

<context id="date_ym">1999.12</context>

будет прочитан как "декабрь тысяча девятьсот девяносто девятого года"

date_my

Первая группа цифр будет воспринята как месяц, вторая группа - год. Если год записан двумя цифрами, голос прочтет его как число из двух цифр или четырех цифр. Если год записан четырьмя цифрами, голос прочтет его как число из четырех цифр.

Например:

<context id="date_my">12/99</context>

будет прочитан как "декабрь девяносто девятого года"
или "декабрь тысяча девятьсот девяносто девятого года"

<context id="date_my">12/1999</context>

будет прочитан как "декабрь тысяча девятьсот девяносто девятого года"

date_dm

Первая группа цифр будет воспринята как день месяца, вторая группа - месяц.

Например:

<context id="date_dm">21.12</context>

будет прочитан как "двадцать первое декабря"

date_md

Первая группа цифр будет воспринята как месяц, вторая группа - день.

Например:

<context id="date_md">12/21</context>

будет прочитан как "двадцать первое декабря"

date_year

Группа цифр будет воспринята синтезатором речи как год.

Например:

<context id="date_year">1999</context>

будет прочитан как "тысяча девятьсот девяносто девятый год"

<context id="date_year">2001</context>

будет прочитан как "две тысячи первый год"

chs_date_ymdhm

Текст будет воспринят как дата и время: первая группа цифр - год, вторая - месяц, третья - день, четвертая - часы, пятая - минуты. Если год записан двумя цифрами, голос прочтет его как число из двух цифр или четырех цифр. Если год записан четырьмя цифрами, голос прочтет его как число из четырех цифр. Часы должны быть представлены как число между 00 и 23 (для 12-часового формата времени перед числом от 01 до 12 должны стоять буквы "PM" или "AM"). Минуты должны быть представлены как число между 01 и 59.

Это значение атрибута используется синтезаторами речи для китайского языка.

Время

Этот контекст обозначает, что числа, передаваемые голосу, представляют собой время. Обычно данные выглядят как "число [разделитель] число [разделитель] число" или "число [разделитель] число", где разделителем могут быть символы ':', ' ' ' или ' " ', а числа варьируются от 01 до 24 для часов и от 01 до 59 для минут и секунд.

Если в числах от 01 до 09 присутствует ноль, английский голос может игнорировать его или произносить как "oh". Синтезатор речи может вставить союз "и" между значениями для минут и секунд.

time

Например:

<context id="time">12:30</context>

будет прочитан как "двенадцать тридцать"

<context id="time">01:21</context>

будет прочитан как "час двадцать одна"

<context id="time">1'21"</context>

будет прочитан как "одна минута двадцать одна секунда"
или "одна минута и двадцать одна секунда"

chs_time_hms

Текст будет воспринят как время: первая группа цифр - часы, вторая - минуты, третья - секунды.

Это значение атрибута используется синтезаторами речи для китайского языка.

chs_time_hm

Текст будет воспринят как время: первая группа цифр - часы, вторая - минуты.

Это значение атрибута используется синтезаторами речи для китайского языка.

Число

number_cardinal

Текст будет воспринят как количественное числительное.

Например:

<context id="number_cardinal">3432</context>

будет прочитан как "три тысячи четыреста тридцать два"

number_digit

Текст будет воспринят как набор отдельных цифр.

Например:

<context id="number_digit">3432</context>

будет прочитан как "три четыре три два"

number_fraction

Текст будет воспринят как дробное числительное.

Например:

<context id="number_fraction">3/15</context>

будет прочитан как "три пятнадцатых"

number_decimal

Текст будет воспринят как действительное число. Целая часть может отделяться от дробной части запятой или точкой, в зависимости от языка компьютерного голоса. Если десятичным разделителем является запятая, в этом случае точка может являться разделителем групп разрядов (групп из трех цифр в больших числах слева от знака десятичного разделителя).

Например:

<context id="number_decimal">423,124</context>

будет прочитан как "четыреста двадцать три целых сто двадцать четыре тысячных"

<context id="number_decimal">423.124</context>

будет прочитан как "четыреста двадцать три тысячи сто двадцать четыре"

phone_number

Текст будет воспринят как телефонный номер. Реализация этого контекста зависит от конкретного синтезатора речи и может быть изменена в будущих версиях SAPI.

currency

Текст будет воспринят как денежная сумма. Реализация этого контекста зависит от конкретного синтезатора речи и может быть изменена в будущих версиях SAPI.

Например:

<context id="currency">$34,90</context>

будет прочитан как "тридцать четыре доллара и девяносто центов"

chs_number_percentage

Текст будет воспринят как величина в процентах.

Это значение атрибута используется синтезаторами речи для китайского языка.

chs_number_scientific

Текст будет воспринят как научная величина.

Это значение атрибута используется синтезаторами речи для китайского языка.

chs_phone_postal

Текст будет воспринят как телефонный номер и почтовый адрес. Чтение текста не отличается от чтения количественного числительного; единственное отличие: "1" читается как "yao1".

Это значение атрибута используется синтезаторами речи для китайского языка.

Интернет

Текст будет воспринят как адрес страницы сайта (URL). Реализация этого контекста зависит от конкретного синтезатора речи и может быть изменена в будущих версиях SAPI.

web_url

Например:

<context id="web_url">www.Microsoft.com</context>

будет прочитан как "w w w точка Microsoft точка com"

Электронная почта

Текст будет воспринят как адрес электронной почты. Реализация этого контекста зависит от конкретного синтезатора речи и может быть изменена в будущих версиях SAPI.

e-mail_address

Например:

<context id="e-mail_address">someone@microsoft.com</context>

будет прочитан как "someone собачка Microsoft точка com"

Адрес

Этот контекст обозначает, что текст, передаваемый голосу, представляет собой почтовый адрес (название страны, почтовый индекс, название населенного пункта и т.д.). Структура адреса для разных стран будет отличаться.

address

Текст будет воспринят как адрес. Реализация этого контекста зависит от конкретного синтезатора речи и может быть изменена в будущих версиях SAPI.

Например:

<context id="address">153002, Иваново, ул. Громобоя, 13</context>

будет прочитан как "сто пятьдесят три тысячи два Иваново улица Громобоя тринадцать"

address_postal

Текст будет воспринят как почтовый адрес. Реализация этого контекста зависит от конкретного синтезатора речи и может быть изменена в будущих версиях SAPI.

Например:

<context id="address_postal">A2C 4X5</context>

будет прочитан как "A два C четыре X пять"


Универсальные теги

Для управления синтезом речи рекомендуется использовать теги для SAPI 4 и SAPI 5. В добавление к этому "Балаболка" поддерживает собственные универсальные теги.

Audio

Программа позволяет вставлять ссылки на внешние звуковые файлы (аудиоклипы) в текст документов. Используйте пункт главного меню "Текст | Аудиоклип" для выбора аудиофайла. Поддерживаются форматы WAV, MP3, OGG.

Тег вставки аудиоклипа будет выглядеть так:

{{Audio=C:\Sounds\ring.wav}}

Также, может быть задан относительный путь к звуковому файлу. Относительный путь - это путь, указываемый относительно самого документа, из которого производится ссылка на файл:

{{Audio=..\My Sounds\ring.mp3}}

Во время чтения вслух, когда в тексте встретится ссылка на аудиоклип, "Балаболка" будет приостанавливать речь, воспроизводить аудиоклип, а затем продолжать чтение. При записи речи в файл программа вставит аудиоданные из внешнего звукового файла внутрь нового файла.

Voice

Если необходимо изменить голос или его атрибуты, специальный тег может быть использован для SAPI 5 и Microsoft Speech Platform (голоса SAPI 4 будут игнорировать этот тег).

Формат тега:

{{Voice=Название;Скорость;Высота;Громкость}}

  • Название - название голоса (достаточно одного слова или даже части слова);
  • Скорость - скорость чтения (значение должно находиться между -10 и 10);
  • Высота - высота звука (значение должно находиться между -10 и 10);
  • Громкость - громкость речи (значение должно находиться между 0 и 100).

Область действия тега распространяется на весь последующий текст. Значения атрибутов внутри тега разделены точкой с запятой. Например:

Программа прочитает этот текст основным голосом. {{Voice=Alyona;0;0;100}} Голос 'Алёна' прочитает остальной текст.

Содержимое тега не зависит от регистра букв. Значения некоторых атрибутов могут быть пропущены:

{{voice=yuri;;;50}}

{{Voice=Hans;-1}}

{{Voice=Aleksandr}}

Чтобы вернуться к основному голосу, выбранному в программе, используйте этот тег:

{{Voice=}}

Внимание! При помощи тегов невозможно переключиться между голосами SAPI 5 и голосами Microsoft Speech Platform.

Pause

Когда программа преобразует текст в речь, с помощью тега можно вставить паузу. Длительность паузы должна быть указана в миллисекундах.

Тишина продлится две секунды. {{Pause=2000}} Затем чтение возобновится.


Фонетические алфавиты

Фонетический алфавит представляет собой набор букв, цифр и других символов, используемых для записи фонетической транскрипции. Для этого используются "фонемы" - минимальные различимые звуковые единицы, которые являются строительными блоками в словах. Синтезаторы речи поддерживают три фонетических алфавита:

  • Международный фонетический алфавит (МФА, International Phonetic Alphabet, IPA);
  • Фонетический алфавит SAPI (SAPI Phone Set);
  • Универсальный фонетический алфавит (Universal Phone Set, UPS).

Международный фонетический алфавит был разработан Международной фонетической ассоциацией для стандартизации изображения звуков человеческой речи. МФА используется лексикографами, певцами, актерами, авторами искусственных языков и переводчиками.

Первые синтезаторы речи, которые работали через SAPI 5, использовали фонетический алфавит SAPI (SAPI Phone Set). В этом алфавите для отображения каждой фонемы применялись одна или несколько латинских букв; фонемы были отделены друг от друга пробелами. Фонетический алфавит SAPI был разработан для следующих языков: английский (США), испанский, итальянский, китайский, немецкий, французский, японский.

Позднее корпорация Microsoft разработала универсальный фонетический алфавит (Universal Phone Set), основанный на Международном фонетическом алфавите и пригодный для использования в компьютерных системах. По сравнению со старым фонетическим алфавитом SAPI, новый алфавит позволяет создавать фонетические транскрипции для любого языка, а также легко конвертировать символы UPS в другие системы записи знаков (такие как X-SAMPA, SAMPA или ASCII-IPA) и наоборот.

При чтении текста вслух с помощью голосов SAPI 5 тег PRON позволяет изменить произношение слова. Вот два примера использования фонетической транскрипции для того, чтобы голос произнес слово "hello" на английском языке:

<pron sym="h eh - l ow 1"/>

<pron sym="H EH S1 L O"/>

Первый пример использует фонемы для американского английского языка из фонетического алфавита SAPI. Цифра "1" обозначает ударение в слове. Фонемы отделены друг от друга пробелами, а символ "-" применяется для обозначения границы между слогами. Второй пример использует символы из универсального фонетического алфавита Microsoft. Буквы обозначают фонемы, из которых составлено слово. Символы "S1" показывают ударный слог в слове.

Примечание. Фонетический алфавит SAPI считается устаревшим, но он по-прежнему используется для записи фонем в синтезаторах речи для семи перечисленных выше языков. Это означает, что первый пример для тега PRON может быть прочитан только американским английским голосом, второй пример - голосами для всех остальных диалектов английского языка (британского, австралийского и т.д.).

Существующие версии голосов IVONA не поддерживают фонетический алфавит SAPI. Тег PRON игнорируется речевым движком. Поэтому для голосов IVONA рекомендуется использовать язык разметки Speech Synthesis Markup Language (SSML) для настройки произношения отдельных слов и фраз.

<phoneme alphabet="ipa" ph="səmɐlʲˈɵt">самолёт</phoneme>

Тег PHONEME можно записать в сокращенном виде:

<phoneme alphabet="ipa" ph="ɐɪrɐplˈan"/>

В SSML тег использует фонетические алфавиты:

  • Международный фонетический алфавит (IPA);
  • Расширенный фонетический алфавит методов оценки речи (X-SAMPA).

Символы из алфавита IPA сложно вводить с клавиатуры. Балаболка позволяет выбирать символы из списка поддерживаемых фонем.

Для некоторых языков доступно автоматическое преобразование текста в символы IPA. Программа будет использовать язык текущего выбранного голоса. Поддерживается преобразование для следующих языков:

  • английский;
  • испанский;
  • итальянский;
  • немецкий;
  • польский;
  • португальский;
  • русский;
  • турецкий;
  • украинский;
  • французский.

Текст должен быть написан маленькими буквами; большие гласные используются для обозначения ударения в словах (например, замОк). Для русского и украинского языков ударение также можно указать с помощью знака ударения: за́мок, сѐльсове́т.


Фонетический алфавит SAPI

Фонетический алфавит - это система знаков для записи транскрипции на основе латинского алфавита. Разработчики Microsoft Speech API создали специальный фонетический алфавит (SAPI Phone Set) для записи слов в виде фонем. Тег PRON, используемый в SAPI 5, позволяет заменять одно слово или несколько слов на фонемную строку.

Пример. Фонемный вид слова "hello":

<pron sym="h eh l ow"/>

Фонемы отделены друг от друга пробелами. В некоторых фонетических алфавитах могут применяться специальные символы, например, для обозначения ударения (1) или в качестве разделителя между слогами (-).

Пример. Фонемный вид слова "hello" с использованием обозначения ударения (1) и разделителя между слогами (-):

<pron sym="h eh - l ow 1"/>

Фонетический алфавит SAPI был разработан для следующих языков:

  • Английский (США)
  • Испанский
  • Итальянский
  • Немецкий
  • Французский
  • Китайский
  • Японский

Фонемы американского английского языка

Символ фонемы | Пример | Транскрипция
1 | Первичное ударение |
2 | Вторичное ударение |
- | Граница слога (дефис) |
& | Граница слова (амперсанд) |
! | Разделитель (знак восклицания) |
, | Разделитель (запятая) |
. | Разделитель (точка) |
? | Разделитель (знак вопроса) |
_ | Пауза (подчеркивание) |
aa | father | f aa 1 dh er
ae | cat | k ae 1 t
ah | but | b ah 1 t
ao | bought | b ao 1 t
aw | house | h aw 1 s
ax | about | ax b aw 1 t
ay | bite | b ay 1 t
b | book | b uh 1 k
ch | catch | k eh 1 ch
d | done | d ah 1 n
dh | breathe | b r i dh
eh | bet | b eh 1 t
er | bird | b er 1 d
ey | ate | ey 1 t
e@ | fairly | f e@ 1 l i
f | fog | f ao 1 g
g | good | g uh 1 d
h | hello | h eh l ow 1
ih | bit | b ih 1 t
iy | beat | b iy 1 t
i@ | here | h i@ 1
jh | jump | jh ah 1 mp
k | cat | k ae 1 t
l | lot | l aa 1 t
m | Mom | m aa 1 m
n | nod | n aa 1 d
ng | sing | s ih 1 ng
ow | boat | b ow 1 t
oy | boy | b oy 1
p | pot | p aa 1 t
r | rat | r ae 1 t
s | sit | s ih 1 t
sh | shut | sh ah 1 t
t | top | t aa 1 p
th | thick | th ih 1 k
uh | book | b uh 1 k
uw | boot | b uw 1 t
v | various | v eh 1 r i ih s
w | won | w ah 1 n
y | you | y uw 1
z | zoo | z uw 1
zh | casual | k ae 1 zh uw ah l

Фонемы испанского языка

Символ фонемы | Пример | Транскрипция
1 | Первичное ударение |
2 | Вторичное ударение |
- | Граница слога (дефис) |
& | Граница слова (амперсанд) |
! | Разделитель (знак восклицания) |
, | Разделитель (запятая) |
. | Разделитель (точка) |
? | Разделитель (знак вопроса) |
_ | Пауза (подчеркивание) |
a | aquí | a k i 1
b | Brasil | b r a s i 1 l
ch | Chile | ch i 1 l e
d | grande | g r a 1 n d e
e | este | e 1 s t e
f | función | f u n s xi o 1 n
g | segundo | s e g u 1 n d o
i | identidad | i d e n t i d a 1 d
j | yo | j o 1
k | casa | k a 1 s a
l | los | l o 1 s
ll | llamada | ll a m a 1 d a
m | manos | m a 1 n o s
n | no | n o 1
nj | año | a 1 nj o
o | bueno | b xu e 1 n o
p | para | p a 1 r a
r | para | p a 1 r a
rr | radio | rr a 1 d xi o
s | solo | s o 1 l o
sh | Bush | b u 1 sh
t | importante | i m p o r t a 1 n t e
u | uno | u 1 n o
w | Hollywood | o 1 l i w u d
x | general | x e n e r a 1 l
xi | iogur | xi o g u 1 r
xu | puedo | p xu e 1 d o

Фонемы итальянского языка

Символ фонемы | Пример | Транскрипция
1 | Первичное ударение |
2 | Вторичное ударение |
- | Граница слога (дефис) |
& | Граница слова (амперсанд) |
! | Разделитель (знак восклицания) |
, | Разделитель (запятая) |
. | Разделитель (точка) |
? | Разделитель (знак вопроса) |
_ | Пауза (подчеркивание) |
a | campo | k a 1 m p o
ao | nove | n ao 1 v e
b | barra | b a 1 rr a
ch | percento | p e r ch eh 1 n t o
d | mondo | m o 1 n d o
dz | zeta | dz eh 1 t a
e | venire | v e n i 1 r e
eh | lento | l eh 1 n t o
f | fine | f i 1 n e
g | gruppi | g r u 1 p i
i | si | s i
j | funzione | f u n ts j o 1 n e
jh | generazione | jh e n e r a ts j o 1 n e
k | economia | e k o n o m i 1 a
l | libri | l i 1 b r i
ll | gli | ll i
m | mai | m a 1 i
n | nord | n ao r d
nj | signor | s i 1 nj ao r
o | otto | ao 1 t t o
p | primo | p r i 1 m o
r | arrivederci | a rr i v e d e 1 r ch i
rr | arrivederci | a rr i v e d e 1 r ch i
s | sinistra | s i n i 1 s t r a
sh | scienza | sh eh 1 n ts a
t | tre | t r eh
ts | grazie | g r a 1 ts j e
u | punto | p u 1 n t o
v | venti | v e 1 n t i
w | Washington | w a 1 sh i ng t o n
z | svolta | z v o 1 l t a

Фонемы немецкого языка

Символ фонемы | Пример | Транскрипция
1 | Первичное ударение |
2 | Вторичное ударение |
- | Граница слога (дефис) |
& | Граница слова (амперсанд) |
! | Разделитель (знак восклицания) |
, | Разделитель (запятая) |
. | Разделитель (точка) |
? | Разделитель (знак вопроса) |
_ | Пауза (подчеркивание) |
a | Achtung | q a 1 x t uh ng
A | Name | n A 1 m ah
aan | Chance | sh aan 1 s ah
ah | bitte | b ih 1 t ah
ao | Hoffnung | h ao 1 f n uh ng
aon | Pompon | p aon 1 p aon 1
aw | Raum | rq aw 1 m
ay | Zeit | ts ay 1 t
b | besonders | b ah z ao 1 n d e@ s
c | China | c i 1 n A
ch | deutsch | d oy 1 ch
d | das | d a 1 s
e | mehr | m e 1 r
eh | Enkel | q eh 1 ng k el
EH | erklären | q eh r k l EH 1 rq en
ehn | Bassin | b a s ehn 1
el | Einzelnen | q ay 1 n ts el n en
em | einem | q ay 1 n em
en | einen | q ay 1 n en
er | Surfer | s er 1 f e@
ey | Display | d ih s p l ey 1
e@ | Kindern | k ih 1 n d e@ n
f | Fall | f a 1 l
g | glaube | g l aw 1 b ah
h | Haupt | h aw 1 p t
i | sieben | z i 1 b en
ih | immer | q ih 1 m e@
j | ja | j A 1
jh | Dschungel | jh uh 1 ng el
k | Kultur | k uh l t u 1 r
l | lieber | l i 1 b e@
m | mein | m ay 1 n
n | Name | n A 1 m ah
ng | Junge | j uh 1 ng ah
o | oder | q o 1 d e@
oe | öffnete | q oe 1 f n ah t ah
OE | Österreich | q OE 1 s t ah rq ay c
oen | Parfum | p a r f oen 1
oy | Europa | q oy rq o 1 p A
p | Parlament | p a r l a m eh 1 n t
pf | Pflicht | pf l ih 1 c t
q | aber | q A 1 b e@
r | Berliner | b eh r l i 1 n e@
rq | Runde | rq uh 1 n d ah
s | Szene | s ts e 1 n ah
sh | sprach | sh p rq A 1 x
t | tol | t ao 1 l
ts | Zimmer | ts ih 1 m e@
u | Uhren | q u 1 rq en
ue | hübsch | h ue 1 p sh
UE | über | q UE 1 b e@
uh | Schutz | sh uh 1 ts
v | wichtig | v ih 1 c t ih c
w | Mademoiselle | m a d ah m w a z eh 1 l
x | Buch | b u 1 x
z | selbst | z eh 1 l p s t
zh | Spionage | sh p i o n A 1 zh ah

Фонемы французского языка

Символ фонемы | Пример | Транскрипция
1 | Первичное ударение |
2 | Вторичное ударение |
- | Граница слога (дефис) |
& | Граница слова (амперсанд) |
! | Разделитель (знак восклицания) |
, | Разделитель (запятая) |
. | Разделитель (точка) |
? | Разделитель (знак вопроса) |
_ | Пауза (подчеркивание) |
a | patte | p a 1 t
aan | abandon | a b aan d aon 1
ao | comme | k ao 1 m
aon | bon | b aon 1
ax | le | l ax 1
b | bouche | b u 1 sh
ch | charlie | ch a 1 r l i
d | dame | d a 1 m
dz | jeudi | j oe dz i 1
e | marché | m a r sh e 1
eh | chère | sh eh 1 r
ehn | main | m ehn 1
eo | feu | f eo 1
f | fille | f i 1 j
g | garde | g a 1 r d
i | libre | l i 1 b r
j | pierre | p j e 1 r
jh | George | jh ao 1 r jh
k | chique | sh i k
l | langage | l aan g a 1 zh
m | mois | m w a 1
n | nonne | n ao 1 n
ng | shopping | sh ao p i 1 ng
nj | campagne | k aan p a 1 nj
o | animaux | a n i m o 1
oe | leur | l oe 1 r
oen | parfum | p a r f oen 1
p | pile | p i 1 l
q | hacher | q a sh e 1
r | route | r u t
s | adresser | a d r e s e 1
sh | chaise | sh eh 1 z
t | technique | t eh k n i 1 k
ts | énergétique | e n eh r zh e ts i 1 k
u | doux | d u 1
ue | une | ue 1 n
uh | Bush | b uh 1 sh
v | vive | v i 1 v
w | boire | b w a 1 r
yw | huile | yw i 1 l
z | zone | z ao 1 n
zh | juste | zh ue 1 s t

Фонемы китайского языка

Символ фонемы | Пример
- | Граница слога (дефис)
! | Разделитель (знак восклицания)
& | Граница слова (амперсанд)
, | Разделитель (запятая)
. | Разделитель (точка)
? | Разделитель (знак вопроса)
_ | Пауза (подчеркивание)
+ | Первичное ударение
* | Вторичное ударение
1 | Тон 1
2 | Тон 2
3 | Тон 3
4 | Тон 4
5 | Тон 5
a | a 1 fei 1 (rogue)
ai | ai 4 ren 2 (lover)
an | an 1 quan 2 (safe)
ang | ang 1 zang 1 (dirty)
ao | jiao 1 ao 4 (proud)
ba | ba 4 ba 5 (dad)
bai | bai 2 se 4 (white)
ban | mu 4 ban 3 (board)
bang | bang 3 jia 4 (kidnap)
bao | yong 1 bao 4 (embrace)
bei | bei 3 fang 1 (north)
ben | ben 4 dan 4 (fool)
beng | beng 4 tiao 4 (jump)
bi | bi 2 zi 5 (nose)
bian | bian 4 hua 5 (change)
biao | biao 3 ge 2 (table)
bie | li 2 bie 2 (part with)
bin | bin 1 ke 4 (guest)
bing | shi 4 bing 1 (soldier)
bo | bo 2 dou 4 (wrestle)
bu | bu 4 xing 2 (walk)
ca | ca 1 gan 1 (wipe)
cai | cai 1 ce 4 (guess)
can | can 1 jia 1 (join)
cang | cang 1 ying 5 (fly)
cao | cao 1 chang 3 (playground)
ce | ce 4 liang 2 (measure)
cen | cen 1 ci 1 (uneven)
ceng | ceng 2 jing 1 (once)
cha | jian 3 cha 2 (check)
chai | chai 1 hui 3 (demolish)
chan | chan 3 ye 4 (industry)
chang | jing 1 chang 2 (often)
chao | chao 1 yue 4 (exceed)
che | qi 4 che 1 (automobile)
chen | chen 2 jiu 4 (old)
cheng | cheng 2 che 1 (ride)
chi | chi 2 dao 4 (late for)
chong | chong 1 man 3 (full of)
chou | chou 2 hen 4 (hatred)
chu | chu 2 fa 3 (division)
chuai | chuai 3 ce 4 (guess)
chuan | lun 2 chuan 2 (ship)
chuang | chuang 4 ye 4 (carve out)
chui | tie 3 chui 2 (hammer)
chun | chun 1 tian 1 (spring)
chuo | wo 4 chuo 4 (dirty)
ci | ci 2 qi 4 (porcelain)
cong | cong 2 lin 2 (thicket)
cou | jin 3 cou 4 (compact)
cu | cu 4 xiao 1 (sales promotion)
cuan | tao 2 cuan 4 (run away)
cui | cui 1 cu 4 (press)
cun | xiang 1 cun 1 (country)
cuo | cuo 4 wu 4 (error)
da | da 4 (big)
dai | dai 4 biao 3 (delegate)
dan | dan 4 shi 4 (but)
dang | dang 1 ran 2 (sure)
dao | dao 1 (knife)
de | de 5 (function word)
dei | dei 3 (must)
den | den 4 (yank)
deng | ban 3 deng 4 (wooden stool)
di | di 2 que 4 (certainly)
dia | dia 3 (coquetry voice)
dian | dian 3 (dot)
diao | diao 4 (hang)
die | die 1 dao 3 (tumble)
ding | jue 2 ding 4 (decide)
diu | diu 1 qi 4 (discard)
dong | dong 1 fang 1 (east)
dou | zhan 4 dou 4 (struggle)
du | du 4 jue 2 (stop)
duan | duan 3 (short)
dui | dui 4 (right)
dun | ting 2 dun 4 (halt)
duo | duo 1 yu 2 (unnecessary)
e | e 4 (hungry)
ei | ei 4 (yes)
en | en 1 hui 4 (favor)
er | er 3 (ear)
fa | fa 1 zhan 3 (development)
fan | fan 4 (rice)
fang | fang 2 jian 1 (room)
fei | fei 1 (fly)
fen | fen 1 bie 2 (separate)
feng | feng 1 (wind)
fo | fo 2 (buddha)
fou | fou 3 ding 4 (denial)
fu | fu 4 qin 1 (father)
ga | gan 1 ga 4 (awkward)
gai | ying 1 gai 1 (should)
gan | gan 1 jing 4 (neatness)
gang | gang 1 cai 2 (just)
gao | gao 1 (tall)
ge | pin 3 ge 2 (character)
gei | gei 3 yu 3 (give)
gen | gen 1 (root)
geng | geng 4 jia 1 (much more)
gong | gong 1 ren 2 (worker)
gou | zu 2 gou 4 (enough)
gu | gu 4 xiang 1 (hometown)
gua | xi 1 gua 1 (watermelon)
guai | qi 2 guai 4 (oddness)
guan | guan 1 bi 4 (close)
guang | guang 1 (light)
gui | gui 3 (ghost)
gun | gun 4 (stick)
guo | guo 4 qu 4 (past)
ha | ha 1 (sound of laugh)
hai | hai 2 zi 5 (child)
han | chu 1 han 4 (sweat)
hang | hang 2 xing 2 (sail)
hao | hao 3 (good)
he | he 2 (river)
hei | hei 1 (black)
hen | hen 3 (very)
heng | heng 2 xiang 4 (landscape orientation)
hong | hong 2 (red)
hou | hou 2 zi 5 (monkey)
hu | hu 2 xu 1 (beard)
hua | hua 4 (picture)
huai | huai 4 (bad)
huan | huan 2 jing 4 (environment)
huang | huang 2 se 4 (yellow)
hui | hui 1 huang 2 (refulgence)
hun | hun 2 zhuo 2 (muddy)
huo | huo 3 (fire)
ji | ji 2 shi 2 (in time)
jia | jia 4 qi 1 (holiday)
jian | jian 3 dan 1 (simple)
jiang | jiang 1 (river)
jiao | jiao 1 tong 1 (traffic)
jie | jie 2 ri 4 (feast)
jin | jin 3 zhang 1 (strain)
jing | gan 1 jing 4 (neatness)
jiong | jiong 3 po 4 (embarrassed)
jiu | jiu 3 (nine)
ju | ju 4 zi 5 (sentence)
juan | juan 3 qu 1 (curl)
jue | jue 2 ding 4 (decide)
jun | jun 1 dui 4 (army)
ka | ka 3 che 1 (truck)
kai | kai 3 xuan 2 (triumph)
kan | kan 4 (see)
kang | di 3 kang 4 (resist)
kao | kao 3 shi 4 (test)
ke | ke 3 (thirsty)
kei | kei 1 (scold)
ken | ken 3 ding 4 (affirm)
keng | keng 1 hai 4 (entrap)
kong | kong 1 qi 4 (air)
kou | kou 3 (mouth)
ku | jian 1 ku 3 (trial)
kua | kua 1 jiang 3 (praise)
kuai | kuai 4 (fast)
kuan | kuan 1 kuo 4 (openness)
kuang | kong 1 kuang 4 (void)
kui | kui 1 qian 4 (owe)
kun | kun 4 nan 2 (hard)
kuo | kuo 4 da 4 (enlarge)
la | la 4 jiao 1 (hot pepper)
lai | lai 2 (come)
lan | lan 2 se 4 (blue)
lang | lang 2 (wolf)
lao | lao 3 (old)
le | kuai 4 le 4 (happy)
lei | lei 2 (thunder)
leng | leng 3 ku 4 (steeliness)
li | li 2 (pear)
lia | lia 2 (two)
lian | lian 3 (face)
liang | li 4 liang 4 (power)
liao | zuo 2 liao 4 (seasoning)
lie | lin 3 lie 4 (severe)
lin | lin 3 lie 4 (severe)
ling | ling 2 mu 4 (mausoleum)
liu | liu 2 dong 4 (flow)
lo | lo 5 (function word)
long | long 2 (dragon)
lou | lou 4 (leak)
lu | lu 4 di 4 (land)
luan | hun 4 luan 4 (chaos)
lue | ce 4 lue 4 (tactic)
lun | yi 4 lun 4 (discuss)
luo | xia 4 luo 4 (whereabouts)
lv | lv 4 se 4 (green)
ma | ma 3 (horse)
mai | mai 2 zang 4 (bury)
man | man 3 zu 2 (satisfy)
mang | cong 1 mang 2 (hurry)
mao | mao 1 (cat)
me | shen 2 me 5 (what)
mei | mei 2 you 3 (no)
men | wo 3 men 2 (we)
meng | meng 4 (dream)
mi | hun 1 mi 2 (coma)
mian | mian 4 ji 5 (area)
miao | miao 4 (temple)
mie | mie 4 jue 2 (annihilation)
min | ren 2 min 2 (people)
ming | ming 2 bai 2 (clearness)
miu | huang 1 miu 4 (absurd)
mo | mo 4 shui 3 (ink)
mou | mou 2 lue 4 (trick)
mu | mu 4 biao 1 (target)
na | na 4 li 3 (there)
nai | nai 3 nai 5 (grandmother)
nan | nan 2 fang 1 (south)
nang | nang 2 kuo 4 (include)
nao | re 4 nao 4 (liveliness)
ne | mu 4 ne 4 (numb)
nei | nei 4 bu 4 (inside)
nen | nen 4 lv 4 (light green)
neng | neng 2 gou 4 (be capable of)
ni | ni 3 (you)
nian | nian 2 (year)
niang | gu 1 niang 5 (girl)
niao | niao 3 (bird)
nie | nie 4 (bite)
nin | nin 2 (you)
ning | an 1 ning 2 (peace)
niu | niu 2 (bull)
nong | nong 2 min 2 (farmer)
nou | nou 4 (weeding)
nu | nu 3 li 4 (try hard)
nuan | wen 1 nuan 3 (warm)
nue | nue 4 dai 4 (abuse)
nuo | nuo 4 yan 2 (promise)
nv | nv 3 zi 3 (woman)
o | o 5 (function word)
ou | ou 1 yang 2 (Chinese first name)
pa | hai 4 pa 4 (scare)
pai | pai 4 qian 3 (send)
pan | pan 4 tu 2 (betrayer)
pang | pang 2 da 4 (huge)
pao | pao 3 (run)
pei | pei 2 ban 4 (accompany)
pen | pen 2 di 4 (pan)
peng | peng 2 pai 4 (surge)
pi | pi 2 fu 1 (skin)
pian | qi 1 pian 4 (cheat)
piao | piao 4 liang 4 (pretty)
pie | pie 1 kai 1 (put aside)
pin | pin 2 fan 2 (frequency)
ping | ping 2 zi 5 (bottle)
po | po 4 huai 4 (damage)
pou | pou 2 (hold something with cupped hand)
pu | pu 2 tao 5 (grape)
qi | qi 3 qiu 2 (beg)
qia | qia 4 dang 4 (proper)
qian | qian 1 xu 1 (humility)
qiang | qiang 2 da 4 (powerful)
qiao | qiao 3 miao 4 (artifice)
qie | xiu 1 qie 4 (shyness)
qin | qin 1 zi 4 (oneself)
qing | qing 1 song 1 (easy)
qiong | qiong 2 (poverty)
qiu | qiu 2 fan 4 (prisoner)
qu | qu 1 dong 4 (drive)
quan | quan 2 bu 4 (all)
que | que 4 ding 4 (ensure)
qun | qun 2 zhong 4 (crowd)
ran | ran 2 hou 4 (then)
rang | tu 3 rang 3 (soil)
rao | wei 2 rao 4 (surround)
re | re 4 (hot)
ren | ren 2 lei 4 (human being)
reng | reng 2 ran 2 (all the same)
ri | ri 4 chu 1 (sunrise)
rong | rong 2 yao 4 (glory)
rou | niu 2 rou 4 (beef)
ru | ru 2 guo 3 (if)
ruan | rou 2 ruan 3 (soft)
rui | rui 4 zhi 4 (smart)
run | shi 1 run 4 (wetness)
ruo | ruo 4 xiao 3 (puniness)
sa | sa 1 (three)
sai | bi 3 sai 4 (compete)
san | fen 1 san 4 (disperse)
sang | sang 4 (die)
sao | da 3 sao 3 (sweep)
se | yan 2 se 4 (color)
sen | sen 1 lin 2 (forest)
seng | seng 1 lv 3 (monk)
sha | sha 1 chang 3 (battlefield)
shai | ri 4 shai 4 (be exposed to the sun)
shan | shan 4 liang 2 (goodness)
shang | shang 4 mian 4 (top)
shao | shao 4 nian 2 (youth)
she | she 2 (snake)
shei | shei 2 (who)
shen | shen 2 me 5 (what)
sheng | sheng 1 yin 1 (voice)
shi | shi 4 fei 1 (dispute)
shou | shou 3 (hand)
shu | shu 4 mu 4 (tree)
shua | shua 1 zi 5 (brush)
shuai | shuai 1 da 3 (beat)
shuan | men 2 shuan 1 (latch)
shuang | shuang 1 (pair)
shui | shui 3 (water)
shun | shun 4 li 4 (all right)
shuo | shuo 1 (say)
si | si 4 (four)
song | song 4 bie 2 (send-off)
sou | sou 1 cha 2 (search)
su | su 4 du 4 (speed)
suan | suan 4 fa 3 (arithmetic)
sui | sui 1 ran 2 (though)
sun | sun 3 shi 1 (loss)
suo | suo 3 yi 3 (so)
ta | ta 1 men 2 (they)
tai | tai 4 (too)
tan | tan 2 hua 4 (talk)
tang | tang 2 (sugar)
tao | tao 2 pao 3 (flee)
te | te 4 bie 2 (special)
tei | tei 1 (very)
teng | ben 1 teng 2 (riot)
ti | ti 1 zi 5 (ladder)
tian | tian 1 (sky)
tiao | tiao 4 yue 4 (jump)
tie | tie 3 (iron)
ting | ting 1 (listen)
tong | tong 3 yi 1 (unify)
tou | tou 2 (head)
tu | tu 3 di 4 (earth)
tuan | tuan 2 jie 2 (solidify)
tui | tui 1 dong 4 (push)
tun | tun 2 ji 1 (store up)
tuo | tuo 1 yi 1 (undress)
wa | qing 1 wa 1 (frog)
wai | wai 4 mian 4 (outside)
wan | wan 4 (ten thousands)
wang | si 3 wang 2 (death)
wei | wei 3 da 4 (great)
wen | wen 2 hua 4 (culture)
weng | lao 3 weng 1 (oldman)
wo | wo 3 (I)
wu | wu 2 lun 4 (no matter what)
xi | xi 1 fang 1 (west)
xia | xia 4 mian 4 (bottom)
xian | xian 4 zai 4 (now)
xiang | xiang 4 (like)
xiao | xiao 3 (small)
xie | xie 3 (write)
xin | xin 1 (new)
xing | xing 2 dong 4 (act)
xiong | xiong 2 (bear)
xiu | xiu 1 xi 5 (break)
xu | xu 1 yao 4 (need)
xuan | xuan 1 bu 4 (declare)
xue | xue 3 (snow)
xun | xun 2 wen 4 (ask for)
ya | ya 4 zhou 1 (Asia)
yan | yan 4 zi 5 (swallow)
yang | tai 4 yang 2 (sun)
yao | yao 1 qiu 2 (require)
ye | ye 2 ye 5 (grandfather)
yi | yi 1 (one)
yin | yin 1 yue 4 (music)
ying | ying 1 gai 1 (should)
yo | yo 5 (function word)
yong | yong 3 yuan 3 (forever)
you | you 2 yu 2 (due to)
yu | yu 2 (fish)
yuan | yuan 2 lai 2 (formerly)
yue | yue 4 (month)
yun | yun 2 (cloud)
za | za 2 luan 4 (disorder)
zai | zai 4 jian 4 (farewell)
zan | zan 2 men 5 (our)
zang | ang 1 zang 1 (dirty)
zao | zao 3 chen 2 (morning)
ze | ze 2 ren 4 (response)
zei | zei 2 (thief)
zen | zan 4 yang 2 (praise)
zeng | zeng 1 jia 1 (add)
zha | zha 4 dan 4 (bomb)
zhai | qian 4 zhai 4 (owe)
zhan | zhan 4 li 4 (stand)
zhang | zhang 1 kai 1 (open)
zhao | zhao 1 huan 4 (summon)
zhe | zhe 4 li 3 (here)
zhei | zhei 5 (this)
zhen | zhen 1 zheng 4 (real)
zheng | zheng 4 yi 4 (justice)
zhi | yi 4 zhi 4 (restrain)
zhong | zhong 1 guo 2 (China)
zhou | si 4 zhou 1 (around)
zhu | zhu 1 (pig)
zhua | zhua 1 (grab)
zhuai | zhuai 4 (pull)
zhuan | zhuan 1 (brick)
zhuang | zhuang 1 (pretend)
zhui | zhui 1 (chase)
zhun | zhun 3 (precise)
zhuo | zhuo 1 (table)
zi | zi 4 (character)
zong | zong 3 (total)
zou | zou 3 (walk)
zu | zu 1 (rent)
zuan | zuan 4 (diamond)
zui | zui 4 (most)
zun | zun 1 (respect)
zuo | zuo 4 (sit)

Фонемы японского языка (катакана)

Символ | Фонема | Юникод | Примечание
' |  | U+0027 | Позиция ударения
+ |  | U+002B | Граница области ударения
| |  | U+007C | Граница фразы
. |  | U+002E | Конец предложения (обычный)
? |  | U+003F | Конец предложения (вопросительный)
! |  | U+0021 | Конец предложения (восклицательный)
_ |  | U+005F | Пауза длиной в одну мору
゜ |  | U+309C | Semi-voiced sound
ァ | a | U+30A1 | Modifier
ア | a | U+30A2 |
ィ | i | U+30A3 | Modifier
イ | i | U+30A4 |
ゥ | u | U+30A5 |
ウ | u | U+30A6 |
ェ | e | U+30A7 | Modifier
エ | e | U+30A8 |
ォ | o | U+30A9 | Modifier
オ | o | U+30AA |
カ | ka | U+30AB |
ガ | ga | U+30AC |
キ | ki | U+30AD |
ギ | gi | U+30AE |
ク | ku | U+30AF |
グ | gu | U+30B0 |
ケ | ke | U+30B1 |
ゲ | ge | U+30B2 |
コ | ko | U+30B3 |
ゴ | go | U+30B4 |
サ | sa | U+30B5 |
ザ | za | U+30B6 |
シ | shi | U+30B7 |
ジ | ji | U+30B8 |
ス | su | U+30B9 |
ズ | zu | U+30BA |
セ | se | U+30BB |
ゼ | ze | U+30BC |
ソ | so | U+30BD |
ゾ | zo | U+30BE |
タ | ta | U+30BF |
ダ | da | U+30C0 |
チ | chi | U+30C1 |
ヂ | di | U+30C2 | Deprecated - use 30B8
ッ | q | U+30C3 |
ツ | tsu | U+30C4 |
ヅ | du | U+30C5 | Deprecated - use 30BA
テ | te | U+30C6 |
デ | de | U+30C7 |
ト | to | U+30C8 |
ド | do | U+30C9 |
ナ | na | U+30CA |
ニ | ni | U+30CB |
ヌ | nu | U+30CC |
ネ | ne | U+30CD |
ノ | no | U+30CE |
ハ | ha | U+30CF |
バ | ba | U+30D0 |
パ | pa | U+30D1 |
ヒ | hi | U+30D2 |
ビ | bi | U+30D3 |
ピ | pi | U+30D4 |
フ | hu | U+30D5 |
ブ | bu | U+30D6 |
プ | pu | U+30D7 |
ヘ | he | U+30D8 |
ベ | be | U+30D9 |
ペ | pe | U+30DA |
ホ | ho | U+30DB |
ボ | bo | U+30DC |
ポ | po | U+30DD |
マ | ma | U+30DE |
ミ | mi | U+30DF |
ム | mu | U+30E0 |
メ | me | U+30E1 |
モ | mo | U+30E2 |
ャ | ya | U+30E3 | Modifier
ヤ | ya | U+30E4 |
ュ | yu | U+30E5 | Modifier
ユ | yu | U+30E6 |
ョ | yo | U+30E7 | Modifier
ヨ | yo | U+30E8 |
ラ | ra | U+30E9 |
リ | ri | U+30EA |
ル | ru | U+30EB |
レ | re | U+30EC |
ロ | ro | U+30ED |
ヮ | wa | U+30EE | Modifier
ワ | wa | U+30EF |
ヰ | wi | U+30F0 | Deprecated - use 30A4
ヱ | we | U+30F1 | Deprecated - use 30A8
ヲ | wo | U+30F2 |
ン | nn | U+30F3 |
ヴ | vu | U+30F4 |
ヵ | ka | U+30F5 |
ヶ | ke | U+30F6 |
ヷ | va | U+30F7 |
ヸ | vi | U+30F8 |
ヹ | ve | U+30F9 |
ヺ | vo | U+30FA |
・ |  | U+30FB | Middle dot
ー |  | U+30FC | Prolonged sound
ヽ |  | U+30FD | Iteration
ヾ |  | U+30FE | Voiced iteration


Universal Phone Set

The Speech API (SAPI) Universal Phone Set (UPS) is a machine-readable phone set that is based on the International Phonetic Alphabet (IPA).

UPS Design Principles

The following design principles were used to select SAPI labels and phone IDs for UPS.

  1. UPS covers the IPA 1993 Unicode character set, plus some extra SAPI phones including some suprasegmental labels that are used in speech synthesis markup but are not found in IPA.
    • In most cases there is a one-to-one mapping between UPS and IPA. In these cases, the SAPI Phone ID can simply use the IPA hex Unicode value.
    • In some cases UPS is a superset of IPA. For example, UPS includes some unique phone labels for commonly used sounds such as diphthongs and nasalized vowels, which the IPA treats as compounds. These compounds are represented using the compounding symbol "+". This symbol is treated just like any other phone, and so must be space delimited in a lexicon: the compound of A and B is written A + B, not AB or A+B. The SAPI Phone IDs of such compounds are formed from the sequence of phone IDs making up the compound.
  2. UPS pronunciations consist of a string of UPS phones, each separated by whitespace. SAPI makes no distinction between segmental phones and diacritics, suprasegmentals, and tones, and so these must also be separated by whitespace like any other SAPI phone.
  3. The UPS phone labels are not restricted to use the SAPI phone labels from US English, Spanish, French, German, Japanese, or Chinese; however, where possible, existing SAPI labels were re-used. Two sets of guidelines were used in creating the phone label names:
    • The UPS phone set reflects orthography where possible but is not biased too heavily towards English.
    • Phone labels adhere to labeling conventions that apply across phonetic classes (e.g., lax vowels use the character 'H' as in 'IH', 'UH' and 'AH').
  4. The UPS phone set is case-sensitive. UPS phone labels are all defined using ASCII character strings.
    • Segmental phones (Consonants, Vowels, Clicks and Ejectives) are represented by upper-case alphabetic symbols. These may vary in length from one to three characters. In general, shorter symbols are used for more frequent phones.
    • Diacritics are represented by three-character, lower-case, alphabetic symbols.
    • Suprasegmentals and Tones may vary in length and contain non-alphabetic characters.

The Universal Phone Set should be used for all Microsoft-supported languages except the seven languages currently supported by SAPI: Chinese, English (United States), French, German, Italian, Japanese, Spanish.

Compound Tying Symbol

UPS provides unique phone labels for common compound sounds such as affricates and nasal vowels. However, less frequent compound sounds may also exist in some languages and need to be represented in SAPI lexicons. The Universal Phone Set provides a compounding or tying symbol “+” that can be used to describe composite sounds from any two phones.

The German affricate "PF", diphthong "AI", and nasal vowel "AN" exist as unique phones in UPS. However, they could also be represented as compounds. The following example shows that "PF" and "P + F" are equivalent and are distinct from the phone sequence "P F".

Unique Phone | Compound
PF | P + F
AI | A + I

The nasal vowel "AN" can be described as the "A" vowel with a nasal diacritic. All diacritics must follow a segmental phone, so "A nas" and "A + nas" are equivalent. The former is preferred, though SAPI does not enforce any particular use of "+" or diacritics.

Unique Phone | Compound
AN | A nas
AN | A + nas

Consonants

This is a listing and cross reference of the consonant phones that are used by the three phonetic alphabets.

UPS Consonant Labeling Conventions

Consonant symbols are one, two, or three characters in length. Single character labels are used for highly frequent, language-universal consonants. In general the first character signifies place plus voicing, and the second signifies manner. Labeling conventions carry across phonetic classes in the following ways:

Conventions for place of articulation and voicing labeling:

  • Dentals and alveloars use D for voiced and T for voiceless
  • Alveolars use N for nasal and R for approximant
  • Labiodentals use V for voiced and F for voiceless
  • Velars use G for voiced and K for voiceless, NG for nasal
  • Bilabials use B for voiced and P for voiceless stops, M for nasal
  • Laterals use L
  • Uvulars use Q
  • Pharyngeals use H
  • Palatals use X for voiceless and Y for voiced

Conventions for manner of articulation labeling:

  • Single-character labels have manner encapsulated in choice of symbol: for example, M is nasal
  • Trills double up the first symbol
  • Fricatives use H
  • Approximants use X
  • Retroflex uses R

Consonant Tables

There are two tables, each listing a different category of consonant phones:

  • Consonants
  • Affricates

The table columns contain the following information:

  • UPS. The phone label specified in Microsoft’s Universal Phone Set (UPS).
  • IPA. The phone label specified in the International Phonetic Alphabet (IPA) phone set.
  • Unicode. The Unicode value from the IPA phone set.
  • IPA Description. This column describes the features of the phone, such as place of articulation, manner of articulation, phonation type, and airstream mechanism.
  • ASCII-IPA. The equivalent phone in ASCII-IPA phone set for reference.
  • X-SAMPA. The equivalent phone in X-SAMPA for reference.
  • Example. A word that uses the phone and illustrates its sound.
  • Language. The language of the example word.

Consonant Phones

Consonants are speech sounds that are articulated with complete (voiceless) or partial closure of the vocal tract.

UPS | IPA | Unicode | IPA Description | ASCII-IPA | X-SAMPA | Example | Language
P | p | U+0070 | {blb,stp,vls} | p | p | put | English
B | b | U+0062 | {blb,stp,vcd} | b | b | big | English
M | m | U+006D | {blb,nas} | m | m | mat | English
BB | ʙ | U+0299 | {blb,trl,vcd} | B<trl> | B\ |  |
PH | ɸ | U+0278 | {blb,frc,vls} | P | p\ |  |
BH | β | U+03B2 | {blb,frc,vcd} | B | B | kabra | Spanish
MF | ɱ | U+0271 | {lbd,nas} | M | F |  |
F | f | U+0066 | {lbd,frc,vls} | f | f | fork | English
V | v | U+0076 | {lbd,frc,vcd} | v | v | vat | English
VA | ʋ | U+028B | {lbd,apr,vcd} | r<lbd> | v\ |  |
TH | θ | U+03B8 | {dnt,frc,vls} | T | T | thin | English
DH | ð | U+00F0 | {dnt,frc,vcd} | D | D | then | English
T | t | U+0074 | {alv,stp,vls} | t | t | talk | English
D | d | U+0064 | {alv,stp,vcd} | d | d | dig | English
N | n | U+006E | {alv,nas} | N | n | no | English
RR | r | U+0072 | {alv,trl,vcd} | r<trl> | r | torre, rojo | Spanish
DX | ɾ | U+027E | {alv,flp,vcd} | * | 4 | butter | US English
S | s | U+0073 | {alv,frc,vls} | s | s | sit | US English
Z | z | U+007A | {alv,frc,vcd} | z | z | zap | US English
LSH | ɬ | U+026C | {alv,lat,frc,vls} |  | K |  |
LH | ɮ | U+026E | {alv,lat,frc,vcd} | z<lat> | K\ | caballo | Spanish/Zulu
RA | ɹ | U+0279 | {alv,apr} | r | r\ | puro | Spanish
L | l | U+006C | {alv,lat,apr,vcd} | l | l | lid | US English
L vel | ɫ | U+026B | {alv,lat,apr,vcd} vel |  | 5 |  |
SH | ʃ | U+0283 | {pla,frc,vls} | S | S | she | US English
SH pal | ʆ | U+0286 | {pla,frc,vls} pal |  |  |  |
ZH | ʒ | U+0292 | {pla,frc,vcd} | Z | Z | pleasure | US English
ZH pal | ʓ | U+0293 | {pla,frc,vcd} pal |  |  |  |
TR | ʈ | U+0288 | {rfx,stp,vls} | t. | t` |  |
DR | ɖ | U+0256 | {rfx,stp,vcd} | d. | d` |  |
NR | ɳ | U+0273 | {rfx,nas,vcd} | n. | n` |  |
DXR | ɽ | U+027D | {rfx,flp,vcd} | *. | r` |  |
SR | ʂ | U+0282 | {rfx,frc,vls} | s. | s` |  |
ZR | ʐ | U+0290 | {rfx,frc,vcd} | z. | z` |  |
R | ɻ | U+027B | {rfx,apr,vcd} | r. | r\` | red | US English
LR | ɭ | U+026D | {rfx,lat,vcd} | l. | l` |  |
RR rho | ɼ | U+027C | {rfx,trl} |  |  |  |
CT | c | U+0063 | {pal,stp,vls} | c | c |  |
JD | ɟ | U+025F | {pal,stp,vcd} | J | J\ |  |
NJ | ɲ | U+0272 | {pal,nas,vcd} | J |  | oignon | French
C | ç | U+00E7 | {pal,frc,vls} | C | C | sicher | German
CJ | ʝ | U+029D | {pal,frc,vcd} | C<vcd> | j\ |  |
J | j | U+006A | {pal,apr,vcd} | j | j | yard | US English
LJ | ʎ | U+028E | {pal,lat,apr,vcd} | l^ | L | gli | Italian
W | w | U+0077 | {lbv,apr,vcd} | w | w | with | US English
K | k | U+006B | {vel,stp,vls} | k | k | cut | US English
G | g | U+0067 | {vel,stp,vcd} | g | g | gut | US English
NG | ŋ | U+014B | {vel,nas} | N | N | sing | US English
X | x | U+0078 | {vel,frc,vls} | x | x | mujer | Spanish
GH | ɣ | U+0263 | {vel,frc,vcd} | Q | G | luego | Spanish
GA | ɰ | U+0270 | {vel,apr,vcd} | j<vel> | M\ |  |
GL | ʟ | U+029F | {vel,lat,vcd} | L | L\ |  |
QT | q | U+0071 | {uvl,stp,vls} | q | q |  |
QD | ɢ | U+0262 | {uvl,stp,vcd} | G | G\ |  |
QN | ɴ | U+0274 | {uvl,nas,vcd} | n" | N\ |  |
QQ | ʀ | U+0280 | {uvl,trl,vcd} | - | R\ |  |
QH | χ | U+03C7 | {uvl,frc,vls} | X | X |  |
RH | ʁ | U+0281 | {uvl,frc,vcd} | g" | R | rond | French
HH | ħ | U+0127 | {phr,frc,vls} | H | X\ |  |
HG | ʕ | U+0295 | {phr,frc,vcd} | H<vcd> | ?\ |  |
GT | ʔ | U+0294 | {glt,stp,vls} | ? | ? |  |
H | h | U+0068 | {glt,frc,vls} | h | h | help | US English
WJ | ɥ | U+0265 | {lbp,apr,vcd} | j<rnd> | H | huit;juin | French

Affricates

Affricates are consonants that begin as stops but release as a fricative.

The SAPI UPS includes explicit phones for the most frequent affricates in the highest priority languages. The IPA Unicode specification includes some of these phones, though not all of them.

The table shows the constituent phones (UPS Compound) that were combined to create the resulting explicit phone (UPS).

UPS | UPS Compound | IPA | Unicode | IPA Description | Example | Language
PF | P + F | p.f |  | {lbd,aff,vls} | Pfahl | German
TS | T + S | t.s / ʦ | U+02A6 | {den,aff,vls} | Zahl | German
CH | T + SH | t.ʃ / ʧ | U+02A7 | {pla,aff,vls} | chin | English
JH | D + ZH | d.ʒ / ʤ | U+02A4 | {pla,aff,vcd} | joy | English
JJ | J + J | j.j |  | {pal,aff,vcd} | hielo | Spanish
DZ | D + Z | d.z / ʣ | U+02A3 | {den,aff,vcd} | zona | Italian
CC | T + SC | t.ɕ / ʨ | U+02A8 | {pla,aff,vls} |  | Mandarin
TSR | T + SR | t.ʂ |  | {rfx,aff,vls} |  | Mandarin
JC | D + ZC | d.ʑ / ʥ | U+02A5 | {pla,aff,vcd} |  |

Many other affricates or compound consonants exist and may be required by other languages. For example, there are about 20 Italian geminate consonants (doubled consonants). UPS does not include dedicated phones for these, but allows them to be defined using the + symbol, or the length diacritic 'lng' in the case of geminates.

Vowels

This is a listing and cross reference of the vowel phones that are used by the three phonetic alphabets.

UPS Labeling Conventions for Vowels

The UPS labeling conventions for vowels were designed to make the phones more intuitive and maintain phonetic similarity across each class. The labels follow these conventions:

  • Cardinal or main vowels use single character labels
  • Non-cardinal vowels and common diphthongs use two characters
  • Maximum label length is three characters
  • Centralized vowel labels use X, as in AX, IX, UX
  • Checked vowel (usually must be followed by a consonant in a stressed syllable) labels use H, as in IH, UH
  • U or O signifies lip rounding, as in AU, AO, EU

Vowel Tables

There are four tables, each listing a different category of vowel phones:

  • Monophthong
  • Diphthong
  • German Diphthong
  • Nasal

Monophthong Vowel Phones

Monophthong (literally "one sound" or "one tone") vowels are those whose articulation at both beginning and end is relatively fixed, and which does not glide up or down towards a new position of articulation.

UPS | IPA | Unicode | IPA Description | ASCII-IPA | X-SAMPA | Example | Language
I | i | U+0069 | {hgh,fnt,unr,vwl} | I | i | feel | English
Y | y | U+0079 | {hgh,fnt,rnd,vwl} | Y | y | du | French
IX | ɨ | U+0268 | {hgh,cnt,unr,vwl} | i" | I\ |  |
YX | ʉ | U+0289 | {hgh,cnt,rnd,vwl} | U" | } |  |
UU | ɯ | U+026F | {hgh,bck,unr,vwl} | u- | M |  |
U | u | U+0075 | {hgh,bck,rnd,vwl} | u | u | too | English
IH | ɪ | U+026A | {smh,fnt,unr,vwl} | I | I | fill | English
YH | ʏ | U+028F | {smh,fnt,rnd,vwl} | I. | Y | hübsch | German
UH | ʊ | U+028ª | {smh,bck,rnd,vwl} | U | U | book | English
E | e | U+0065 | {umd,fnt,urd,vwl} | e | e | ses | French
EU | ø | U+00F8 | {umd,fnt,rnd,vwl} | Y | 2 | blöd | German
EX | ɘ | U+0258 | {umd,cnt,urd,vwl} | @<umd> | @\ |  |
OX | ɵ | U+0275 | {umd,cnt,rnd,vwl} |  | 8 |  |
OU | ɤ | U+0264 | {umd,bck,urd,vwl} | o- | 7 |  |
O | o | U+006F | {umd,bck,rnd,vwl} | o | o | go | English
AX | ə | U+0259 | {mid,cnt,unr,vwl} | @ | @ | ago | English
AX rho | ɚ | U+025ª | {mid,cnt,rho,vwl} | R |  | forensic | English
EH | ɛ | U+025B | {lmd,fnt,unr,vwl} | E | E | pet | English
OE | œ | U+0153 | {lmd,fnt,rnd,vwl} | W | 9 | plötzlich | German
ER | ɜ | U+025C | {lmd,cnt,unr,vwl} | V" | 3 | bird | UK English
ER rho | ɝ | U+025D | {lmd,cnt,unr,rho,vwl} | @. |  | bird | US English
UR | ɞ | U+025E | {lmd,cnt,rnd,vwl} | O" | 3\ |  |
H | ʌ | U+028C | {lmd,bck,unr,vwl} | V | V | cut | English
AO | ɔ | U+0254 | {lmd,bck,rnd,vwl} | O | O | dog | English
AE | æ | U+00E6 | {sml,fnt,unr,vwl} | & | { | cat | English
AEX | ɐ | U+0250 | {sml,cnt,unr,vwl} | 6 |  | Besser | German
A | a | U+0061 | {low,fnt,unr,vwl} | a | a | valle | Spanish
AOE | ɶ | U+0276 | {low,fnt,rnd,vwl} | &. | & |  |
AA | ɑ | U+0251 | {low,bck,unr,vwl} | A | A | father | English
Q | ɒ | U+0252 | {low,bck,rnd,vwl} | A. | Q | hot | English

Diphthong Vowel Phones

In addition to monophthongs, many languages contain diphthongs or even triphthongs. Diphthong (literally "two sounds" or "two tones") vowels are those that change quality during their pronunciation, or "glide", with a smooth movement of the tongue from one articulation to another, as in the English words eye, boy, and cow.

Diphthongs and triphthongs can be represented in UPS as vowel compounds, using the + symbol. However to make lexicons more readable, UPS also contains phones for common diphthongs. The table below shows both the compounding of two phones using the + symbol and the resultant UPS phone.

UPS Compound | UPS | IPA | X-SAMPA | Example | Language | Example | Language
E + I | EI | e.ɪ | eI | late | English | late | English
A + UH | AU | ɑ.ʊ | aU | foul | English | Haus | German
AO + I | OI | ɔ.ɪ | OI | toy | English | Kreuz | German
A + I | AI | ɑ.ɪ | ai | bite | English | Eis | German
I + AX | IYX | i.ə | i:6 | Tier | German | fear | English
Y + AX | UYX | y.ə | y:6 | Tür | German |  |
EH + AX | EHX | ɛ.ə | E6 | Berg | German | stairs | English
U + AX | UWX | u.ə | u:6 | Kur | German | lure | English
O + AX | OWX | o.ə | o:6 | Ohr | German | boa | English
AO + AX | AOX | ɔ.ə | O6 | dort | German | four | English

German Diphthong Vowels

The German language has several more centering diphthongs that must be represented as phone compounds and do not have explicit UPS phones assigned to them. The 'lng' diacritic is included for phonetic completeness.

UPS Compound | IPA | X-SAMPA | Example | Language
IH + AX | ɪ.ə | I6 | Wirt | German
YH + AX | ʏ.ə | Y6 | Türke | German
EY lng + AX | e.ə | e:6 | schwer | German
EH lng + AX | ɛ:.ə | E:6 | Bär | German
EU lng + AX | ø.ə | 2:6 | Föhr | German
OE + AX | œ.ə | 96 | Wörter | German
A lng + AX | a.ə | a:6 | Haar | German
A + AX | a.ə | a6 | hart | German
UH + AX | ʊ.ə | U6 | kurz | German

Nasal Vowel Phones

UPS contains phones for four nasal vowels. These are shown in the following table with French examples.

Compound | UPS | X-SAMPA | Example | Language
E nas | EN | e~ | vin | French
A nas | AN | a~ | vent | French
O nas | ON | o~ | bon | French
OE nas | OEN | 9~ | brun | French

Diacritics

This is a listing and cross reference of the diacritic phones that are used by the three phonetic alphabets.

Diacritic Phones

Diacritics are used to modify segmental phones (vowels, consonants, clicks, and ejectives) with additional phonetic detail. A diacritic cannot stand-alone. Diacritics must modify the preceding segmental phone. Any number of diacritics can follow a segmental symbol.

UPS | IPA | Unicode | IPA Description | ASCII-IPA | X-SAMPA
+ | ͡ | U+0361 | Tie bar |  | _
adv | o̟ | U+031F | Advanced |  | _+
api | t̺ | U+033A | Apical |  | _a
asp | tʰ | U+02B0 | Aspirated | ^lt;h> {asp} | _h
atr | e̘ | U+0318 | Advanced tongue root |  | _A
bvd | b̤ | U+0324 | Breathy voiced |  | _t
cen | ë | U+0308 | Centralized | " | _"
cvd | b̰ | U+0330 | Creaky voiced |  | _k
den | t̪ | U+032A | Dental | [ / {dnt} | _d
ejc | pʼ | U+02BC | Ejective | {ejc} | _>
lab | tʷ | U+02B7 | Labialised | <w> {lzd} | _w
lam | t̻ | U+033B | Laminal |  | _m
lar | dˡ | U+02E1 | Lateral release |  | _l
lla | n̼ | U+033C | Linguolabial |  | _N
low | e̞ | U+031E | Lowered |  | _o
lrd | o̜ | U+031C | Less rounded |  | _c
mcn | e̽ | U+033D | Mid-centralized |  | _x
mrd | o̹ | U+0339 | More rounded |  | _O
nar | d̚ | U+031A | No audible release |  | _}
nas | ñ | U+0303 | Nasalized | ~ / <nzd> | ~ / _~
nsr | oⁿ | U+207F | Nasal release |  | _n
nsy | n̯ | U+032F | Non-syllabic |  | _^
pal | tʲ | U+02B2 | Palatalized | ; / {pzd} | '
phr | nˤ | U+02E4 | Pharyngealized |  | _?\
rai | e̝ | U+031D | Raised |  | _r
ret | o̱ | U+0331 | Retracted |  | _-
rho | ə˞ | U+02DE | Rhoticity |  | `
rtr | e̙ | U+0319 | Retracted tongue root |  | _q
syl | n̩ | U+0329 | Syllabic | {syl} | = / _=
vcd | s̬ | U+032C | Voiced |  | _v
vel | tˠ | U+02E0 | Velarized | {vzd} | _G
vls | n̊ | U+030A | Voiceless |  | _0
vph | l̴ | U+0334 | Velarized or pharyngealized | {fzd} | _e

Suprasegmentals

This is a listing and cross reference of the suprasegmental phones that are used by the three phonetic alphabets.

Suprasegmental Phones

Suprasegmentals describe the features of a language above the level of individual consonants and vowels, such as prosody, tone, length, and stress.

The first set of suprasegmental symbols, up to and including “linking”, map directly to the IPA suprasegmental set and therefore have the IPA Unicode value. This set includes length diacritics for long, half-long, and extra-short. Length is often used phonemically, so length markers could also belong in the diacritics table. For this reason they are given the lower case label format of a diacritic.

The remaining suprasegmental symbols are used in UPS to describe intonation contours in text-to-speech markup (SSML prompt documents). These UPS symbols were formed by prefixing the original SAPI labels with an underscore. This makes them more easily identifiable as a class and removes any ambiguity with other IPA symbols. For example the old SAPI symbol '!' sentence terminator is the IPA symbol for an alveolar click.

UPS | IPA | Unicode | IPA Description | X-SAMPA | SAPI Equivalent
S1 | ˈ | U+02C8 | Primary stress | " | 1
S2 | ˌ | U+02CC | Secondary stress | % | 2
. | . | U+002E | Syllable break | . |
_| | | | U+007C | Minor (foot) group | | |
_|| | ‖ | U+2016 | Major (intonation) group | || |
lng | ː | U+02D0 | Long | : |
hlg | ˑ | U+02D1 | Half-long | :\ |
xsh | ˘ | U+02D8 | Extra-short | _X |
_^ | ‿ | U+203F | Linking (absence of a break) | -\ |
_! |  |  | Intonation - exclamation |  | ! Sentence terminator (exclamation mark)
_& |  |  | Intonation - continue |  | & Word boundary
_, |  |  | Intonation - incompletion rise |  | , Sentence terminator (comma)
_s |  |  | Silence |  | _ Silence (underscore)
_. | ↘ | U+2198 | Intonation – fall | <F> | . Sentence terminator (period)
_? | ↗ | U+2197 | Intonation - question rise | <R> | ? Sentence terminator (question mark)

Clicks and Ejectives

This is a listing and cross reference of the click and ejective phones that are used by the three phonetic alphabets.

Click and Ejective Phones

IPA uses a diacritic to describe ejectives, but has specific phones for clicks and implosives. Clicks and ejectives are voiceless consonants, although implosives may be partially voiced.

UPS | IPA | Unicode | IPA Description | X-SAMPA
PCK | ʘ | U+0298 | blb,clk | O\
TCK | ǀ | U+01C0 | dnt,clk | |\
NCK | ! | U+0021 | alv,clk | !\
CCK | ǂ | U+01C2 | pla,clk | =\
LCK | ǁ | U+01C1 | alv,lat,clk | |\|\
BIM | ɓ | U+0253 | blb,imp,vcd | b_<
DIM | ɗ | U+0257 | dnt-alv,imp,vcd | d_<
QIM | ʛ | U+029B | uvl,imp,vcd |
QIM vls | ʠ | U+02A0 | uvl,imp,vls |
GIM | ɠ | U+0260 | vel,imp,vcd | g_<
JIM | ʄ | U+0284 | pal,imp,vcd |
P ejc | pʼ | 0070 02BC | blb,ej | b_>
T ejc | tʼ | 0074 02BC | dnt-alv, ej | t_>
K ejc | kʼ | 006B 02BC | vel ej | g_>
S ejc | sʼ | 0073 02BC | alv fric ej | s_>
QT ejc | qʼ | 0071 02BC | uvl,ej |

Tones

This is a listing and cross reference of the tone phones that are used by the three phonetic alphabets.

Tone Phones

Tone describes the use of pitch in speech sounds to distinguish lexical or grammatical meaning. Lexical tones can follow a vowel or syllabic consonant. They can be made up of simple levels, on a universal scale which has a maximum of five level contrasts, or they can be contours composed of sequences of tones. A sequence of three tones should be sufficient to describe any tone contour.

IPA contains a mixture of lexical tones and contour tones. UPS covers the five lexical tones found in IPA, plus upstep and downstep. All contour tones can be represented in UPS by compound tones.

UPS does not include tonal symbols for the following IPA symbols: Rising, Falling, High Rising, Low Rising and Rising-Falling. These can all be defined in UPS using tone sequences. Global Rise and Global Fall are equivalent to "intonation – fall" and "intonation – question rise" in UPS ("Suprasegmentals").

UPS | IPA | Unicode | IPA Description | X-SAMPA
T5 | e̋ | U+030B | Extra high Level | _T
T4 | é | U+0301 | High Level | _H
T3 | ē | U+0304 | Mid Level | _M
T2 | è | U+0300 | Low Level | _L
T1 | ȅ | U+030F | Extra Low Level | _B
T- | ↓ | U+2193 | Downstep | !
T+ | ↑ | U+2191 | Upstep | ^

Other Phones

This is a listing and cross reference of the uncommon phones that are not listed in the other phone tables, but are used by the three phonetic alphabets.

Other Phones

UPS | IPA | Unicode | IPA Description | ASCII-IPA | X-SAMPA
WH | ʍ | U+028D | lbv,frc,vls | w<vls> | W
ESH | ʜ | U+029C | epl,frc,vls |  | H\
EZH | ʢ | U+02A2 | epl,frc,vcd |  | <\
ET | ʡ | U+02A1 | epl,stp |  | >\
SC | ɕ | U+0255 | pla,frc,vls |  | s\
ZC | ʑ | U+0291 | pla,frc,vcd |  | z\
LT | ɺ | U+027A | alv,lat,flp | *<lat> | l\
SHX | ɧ | U+0267 | simultaneous SH and X |  | x\
HZ | ɦ | U+0266 | glt,frc,vcd |  | h\