eSpeak - eSpeak
| Автор (ы) оригинала | Джонатан Даддингтон |
|---|---|
| Разработчики) | Рис Данн |
| Первый выпуск | Февраль 2006 г . |
| Стабильный выпуск |
1.50
/ 2 декабря 2019
|
| Репозиторий | github |
| Написано в | C |
| Операционная система |
Linux Windows macOS FreeBSD |
| Тип | Синтезатор речи |
| Лицензия | GPLv3 |
| Веб-сайт | github |
eSpeakNG - это компактный программный синтезатор речи с открытым исходным кодом для Linux , Windows и других платформ. Он использует метод формантного синтеза , предоставляя множество языков в небольшом размере. Большая часть программирования для поддержки языка eSpeakNG выполняется с использованием файлов правил с отзывами от носителей языка.
Из-за своего небольшого размера и множества языков он включен в качестве синтезатора речи по умолчанию в программу чтения с экрана с открытым исходным кодом NVDA для Windows, а также Android, Ubuntu и других дистрибутивов Linux. Его предшественник eSpeak был рекомендован Microsoft в 2016 году и использовался Google Translate для 27 языков в 2010 году; 17 из них впоследствии были заменены коммерческими голосами.
Качество языковых голосов сильно различается. В предшественнике eSpeakNG, eSpeak, первоначальные версии некоторых языков были основаны на информации, найденной в Википедии . Некоторые языки получили больше работы или отзывов от носителей языка, чем другие. Большинство людей, которые помогли улучшить различные языки, являются слепыми пользователями преобразования текста в речь.
История
В 1995 году Джонатан Даддингтон выпустил синтезатор речи Speak для компьютеров с ОС RISC, поддерживающих британский английский. 17 февраля 2006 г. Speak 1.05 был выпущен под лицензией GPLv2 , первоначально для Linux , с добавленной в январе 2007 г. версией Windows SAPI 5. Разработка Speak продолжалась до версии 1.14, когда она была переименована в eSpeak.
Разработка eSpeak продолжалась с версии 1.16 (версии 1.15 не было) с добавлением программы eSpeakEdit для редактирования и создания голосовых данных eSpeak. Они были доступны только как отдельный исходный код и двоичные загрузки до eSpeak 1.24. Версия eSpeak 1.24.02 была первой версией eSpeak, версия которой контролировалась с помощью Subversion , с отдельными исходными кодами и двоичными загрузками, доступными на SourceForge. Начиная с eSpeak 1.27, eSpeak был обновлен для использования лицензии GPLv3 . Последним официальным выпуском eSpeak был 1.48.04 для Windows и Linux, 1.47.06 для RISC OS и 1.45.04 для macOS . Последний выпуск eSpeak в разработке - 1.48.15 16 апреля 2015 года.
eSpeak использует схему Usenet для представления фонем с помощью символов ASCII.
eSpeak NG
25 июня 2010 года Рис Данн запустил форк eSpeak на GitHub, используя версию 1.43.46. Это началось как попытка упростить создание eSpeak на Linux и других платформах POSIX .
4 октября 2015 года (через 6 месяцев после выпуска eSpeak 1.48.15) этот форк начал более сильно расходиться с исходным eSpeak.
8 декабря 2015 года в списке рассылки eSpeak обсуждалось отсутствие активности со стороны Джонатана Даддингтона за предыдущие 8 месяцев с момента последней разработки eSpeak. Это переросло в обсуждение продолжения разработки eSpeak в отсутствие Джонатана. Результатом этого стало создание вилки espeak-ng (Next Generation), использующей версию eSpeak для GitHub в качестве основы для будущего развития.
11 декабря 2015 года был запущен форк espeak-ng. Первым выпуском espeak-ng был 1.49.0 от 10 сентября 2016 года, который содержал значительную очистку кода, исправления ошибок и языковые обновления.
Функции
eSpeakNG можно использовать как программу командной строки или как разделяемую библиотеку.
Он поддерживает язык разметки синтеза речи (SSML).
Языковые голоса идентифицируются кодом языка ISO 639-1 . Их можно модифицировать «голосовыми вариантами». Это текстовые файлы, которые могут изменять такие характеристики, как диапазон высоты тона, добавлять эффекты, такие как эхо, шепот и хриплый голос, или вносить систематические корректировки в частоты формант для изменения звука голоса. Например, «af» - это голос африкаанс. «af + f2» - это голос африкаанс, модифицированный вариантом голоса «f2», который изменяет форманты и диапазон высоты тона для создания женского звука.
eSpeakNG использует представление имен фонем в формате ASCII, которое частично основано на системе Usenet .
Фонетические представления могут быть включены в текстовый ввод, заключив их в двойные квадратные скобки. Например: espeak-ng -v en «Hello [[w3: ld]]» скажет Hello world на английском языке.
![]()
Метод синтеза
eSpeakNG можно использовать в качестве переводчика текста в речь по-разному, в зависимости от того, какой этап преобразования текста в речь пользователь хочет использовать.
1. шаг - перевод текста в фонемы
Есть много языков (особенно английский ), в которых нет однозначных правил написания и произношения; поэтому первым шагом в преобразовании текста в речь должен быть преобразование текста в фонемы.
- вводимый текст переводится в фонемы произношения (например, вводимый текст xerox переводится на zi @ r0ks для произношения).
- произношение фонема синтезируется в звуковой , например, Zi @ r0ks звонкий , как цзы @ r0ks в монотонном образе
Для добавления интонации к речи необходимы данные просодии (например, ударение слога, падающая или повышающаяся высота основной частоты, пауза и т. Д.) И другая информация, которая позволяет синтезировать более человечную, немонотонную речь. Например, в формате eSpeakNG ударный слог добавляется с использованием апострофа: z'i @ r0ks, что обеспечивает более естественную речь: z'i @ r0ks с интонацией.
Для сравнения два образца с данными просодии и без них:
-
[[DIs Iz m0noUntoUn spi: tS]] пишется монотонно
-
[[DIs Iz 'Int @ n, eItI2d sp'i: tS]] пишется интонационно
Если eSpeakNG используется для генерации просодии данных только, то просодии данные могут быть использованы в качестве входных данных для MBROLA дифона голосов.
2. шаг - синтез звука из просодических данных
ESpeakNG предоставляет два разных типа синтеза формантной речи, используя два разных подхода. С собственным синтезатором eSpeakNG и синтезатором Klatt :
- Синтезатор eSpeakNG создает озвученные звуки речи, такие как гласные и сонорные согласные, путем аддитивного синтеза, складывая синусоидальные волны для создания общего звука. Невозвученные согласные, например / s /, получаются при воспроизведении записанных звуков, потому что они богаты гармониками, что делает аддитивный синтез менее эффективным. Звонкие согласные, такие как / z /, получаются путем смешивания синтезированного вокализованного звука с записанным образцом невокализованного звука.
- Синтезатор Klatt в основном использует те же формантные данные, что и синтезатор eSpeakNG. Но он также производит звуки путем субтрактивного синтеза , начиная с генерируемого шума, который богат гармониками, а затем применяет цифровые фильтры и огибающую, чтобы отфильтровать необходимый частотный спектр и звуковую огибающую для определенной согласной (s, t, k) или сонората ( л, м, н) звук.
Для MBROLA голоса, eSpeakNG преобразует текст в фонемы и связанные смоляных контуры. Он передает это в программу MBROLA, используя формат файла PHO, захватывая аудио, созданное на выходе MBROLA. Затем этот звук обрабатывается eSpeakNG.
Языки
eSpeakNG выполняет синтез текста в речь для следующих языков:
- Абаза
- Ахинский
- Афар
- африкаанс
- албанский
- Амхарский
- Древнегреческий
- Арабский 1
- Арагонский
- Армянский ( Восточноармянский )
- Армянский ( западноармянский )
- Ассамский
- Азербайджанский
- Башкирский
- Баскский
- Начальный английский
- Белорусский
- Бенгальский
- Бходжпури
- Бишнуприя Манипури
- Боснийский
- болгарский
- Бретонский
- Бирманский
- Кантонский диалект
- Каталонский
- Себуано
- Чероки
- Чичева
- Китайский ( мандаринский )
- Корсиканский
- хорватский
- чешский язык
- Чувашский
- Церковнославянский
- Датский
- Голландский
- Дзонгка
- Английский ( американский )
- Английский ( британский )
- Английский ( карибский )
- Английский ( ланкастерский )
- Английский ( полученное произношение )
- Английский ( шотландский )
- Английский ( Уэст-Мидлендс )
- эсперанто
- эстонский
- Финский
- Филиппинский
- Французский ( бельгийский )
- Французский ( Франция )
- Французский ( швейцарский )
- фризский
- Галицкий
- Грузинский
- Немецкий
- Греческий ( современный )
- Гренландский
- Гуарани
- Гуджарати
- Хакка китайский 3
- Гаитянский креольский
- Хауса
- Гавайский
- иврит
- Высокий валирийский
- хинди
- Хмонг
- венгерский язык
- исландский
- Игбо
- индонезийский
- Я делаю
- Интерлингва
- Интерлингв
- Ирландский
- Итальянский
- Японский 4
- Каннада
- Казахский
- Кхмерский
- Клингон
- Kʼiche
- Кирунди
- Киньяруанда
- Конкани
- корейский язык
- Курдский
- Киргизский
- кечуа
- Ладакхи
- Лаосский
- латинский
- Ладино
- Латгальский
- Латышский
- Ланг Бельта
- Lingua Franca Nova
- Лепча
- Лимбу
- Литовский язык
- Ложбан
- Люксембургский
- македонский
- Майтхили
- Малагасийский
- малайский
- Малаялам
- Мальтийский
- Маори
- Маратхи ,
- Монгольский
- Науатль ( классический )
- Навахо
- Непальский
- Норвежский ( букмол )
- Северный сото
- Ногайский
- Одиа
- Оромо
- Октиан
- Папьяменто
- Палау
- Пушту
- Персидский
- Персидский ( латинский алфавит ) 2
- Польский
- Португальский ( бразильский )
- Португальский ( Португалия )
- Пенджаби
- Пяш (искусственный язык )
- румынский
- русский
- Русский ( Латвия )
- Самоанский
- санскрит
- Шотландский гэльский
- сербский
- Шань (Тай Яй),
- Шарда
- Сесото
- Шона
- Синдхи
- Сингальский
- словацкий
- словенский
- Сомалийский
- Испанский ( Испания )
- Испанский ( латиноамериканский )
- суахили
- Шведский
- Таджикский
- Тамильский
- Татарский
- телугу
- тибетский
- Тсвана
- Тайский
- туркменский
- турецкий
- Татарский
- Уйгурский
- украинец
- Урду
- Узбекский
- Вьетнамский ( центральный вьетнамский )
- Вьетнамский ( северный вьетнамский )
- Вьетнамский ( Южный вьетнамский )
- Волапюк
- валлийский
- Волоф
- Коса
- идиш
- Йоруба
- Зулусский
- В настоящее время поддерживается только арабский с полной диакритикой .
- Персидский язык написан английскими (латинскими) буквами .
- В настоящее время поддерживается только Pha̍k-fa-sṳ .
- В настоящее время поддерживаются только хирагана и катакана .
Смотрите также
- Система синтеза речи фестиваля
- Google Переводчик
- Голоса для преобразования текста в речь Microsoft
- Речь