Оригинальный автор (ы) | Джонатан Даддингтон |
---|---|
Разработчики) | Рис Данн |
изначальный выпуск | Февраль 2006 г . |
Стабильный выпуск | 1.50 / 30 октября 2020 г . |
Репозиторий | github |
Написано в | C |
Операционная система | Linux Windows macOS FreeBSD |
Тип | Синтезатор речи |
Лицензия | GPLv3 |
Интернет сайт | github |
eSpeakNG - это компактный программный синтезатор речи с открытым исходным кодом для Linux , Windows и других платформ. Он использует метод синтеза формант , предоставляя множество языков в небольшом размере. Большая часть программирования для поддержки языка eSpeakNG выполняется с использованием файлов правил с отзывами носителей языка.
Из-за своего небольшого размера и большого количества языков он включен в качестве синтезатора речи по умолчанию в программу чтения с экрана с открытым исходным кодом NVDA [1] для Windows, а также Android [2] Ubuntu [3] и других дистрибутивов Linux. Его предшественник eSpeak был рекомендован Microsoft в 2016 году [4] и использовался Google Translate для 27 языков в 2010 году; [5] 17 из них впоследствии были заменены коммерческими голосами. [6]
Качество языковых голосов сильно различается. В предшественнике eSpeakNG, eSpeak, первоначальные версии некоторых языков были основаны на информации, найденной в Википедии . [7] Некоторые языки получили больше работы или отзывов от носителей языка, чем другие. Большинство людей, которые помогли улучшить различные языки, являются слепыми пользователями преобразования текста в речь.
История [ править ]
В 1995 году Джонатан Даддингтон выпустил синтезатор речи Speak для компьютеров с ОС RISC, поддерживающих британский английский. [8] 17 февраля 2006 года Speak 1.05 был выпущен под лицензией GPLv2 , первоначально для Linux , с добавлением версии Windows SAPI 5 в январе 2007 года. [9] Разработка Speak продолжалась до версии 1.14, когда она была переименована в eSpeak.
Разработка eSpeak продолжалась с версии 1.16 (версии 1.15 не было) [9] с добавлением программы eSpeakEdit для редактирования и создания голосовых данных eSpeak. Они были доступны только как отдельный исходный код и двоичные загрузки до eSpeak 1.24. Версия озвучки 1.24.02 была первая версия озвучки , чтобы быть версии управляется с помощью подрывной , [10] с отдельными загрузки исходных и бинарных доступны на Sourceforge. [9] Начиная с eSpeak 1.27, eSpeak был обновлен для использования лицензии GPLv3 . [11] Последним официальным выпуском eSpeak был 1.48.04 для Windows и Linux, 1.47.06 для RISC OS и 1.45.04 для macOS . [12]Последним разрабатываемым выпуском eSpeak был 1.48.15 16 апреля 2015 г. [13]
eSpeak использует схему Usenet для представления фонем с помощью символов ASCII. [14]
eSpeak NG [ править ]
25 июня 2010 г. [15] Рис Данн запустил форк eSpeak на GitHub, используя версию 1.43.46. Это началось с попытки упростить сборку eSpeak на Linux и других платформах POSIX .
4 октября 2015 года (через 6 месяцев после выпуска 1.48.15 eSpeak) этот форк начал более существенно отличаться от исходного eSpeak. [16] [17]
8 декабря 2015 года в списке рассылки eSpeak обсуждалось отсутствие активности со стороны Джонатана Даддингтона за предыдущие 8 месяцев с момента последней разработки eSpeak. Это переросло в обсуждение продолжения разработки eSpeak в отсутствие Джонатана. [18] [19] Результатом этого стало создание форка espeak-ng (Next Generation), использующего версию eSpeak для GitHub в качестве основы для будущего развития.
11 декабря 2015 года был запущен форк espeak-ng. [20] Первым выпуском espeak-ng был 1.49.0 от 10 сентября 2016 г. [21], содержащий значительную очистку кода, исправления ошибок и языковые обновления.
Особенности [ править ]
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. step - синтез звука из просодических данных [ править ]
ESpeakNG предоставляет два разных типа синтеза формантной речи, используя два разных подхода. С собственным синтезатором eSpeakNG и синтезатором Klatt : [22]
- Синтезатор eSpeakNG создает голосовые звуки речи, такие как гласные и сонорные согласные, путем аддитивного синтеза, складывая синусоидальные волны для создания общего звука. Невозвученные согласные, например / s /, получаются путем воспроизведения записанных звуков [23], потому что они богаты гармониками, что делает аддитивный синтез менее эффективным. Звонкие согласные, такие как / z /, получаются путем смешивания синтезированного вокализованного звука с записанным образцом невокализованного звука.
- Синтезатор Klatt в основном использует те же формантные данные, что и синтезатор eSpeakNG. Но, он также производит звуки от вычитательного синтеза , начиная с генерироваться шумом, который богат гармониками, а затем применять цифровые фильтры и обволакивающий , чтобы отфильтровать необходимую частоту спектра и звуковой оболочку для конкретных согласного (S, T, K) или сонорным ( л, м, н) звук.
Для MBROLA голоса, eSpeakNG преобразует текст в фонемы и связанные смоляных контуры. Он передает это в программу MBROLA, используя формат файла PHO, захватывая аудио, созданное на выходе MBROLA. Затем этот звук обрабатывается eSpeakNG.
Языки [ править ]
eSpeakNG выполняет синтез текста в речь для следующих языков: [24] [25]
- Абаза
- Афар
- Африкаанс [26]
- Албанский [27]
- Амхарский
- Древнегреческий
- Арабский 1
- Арагонский [28]
- Армянский ( Восточноармянский )
- Армянский ( западноармянский )
- Ассамский
- Азербайджанский
- Башкирский
- Баскский
- Начальный английский
- Белорусский
- Бенгальский
- Бходжпури
- Бишнуприя Манипури
- Боснийский
- Болгарский [28]
- Бретонский
- Бирманский
- Кантонский [28]
- Каталанский [28]
- Себуано
- Чероки
- Чичева
- Китайский ( мандаринский )
- Корсиканский
- Хорватский [28]
- Чешский
- Чувашский
- Церковнославянский
- Датский [28]
- Голландский [28]
- Дзонгка
- Английский ( американский ) [28]
- Английский ( британский )
- Английский ( карибский )
- Английский ( ланкастерский )
- Английский ( полученное произношение )
- Английский ( шотландский )
- Английский ( Уэст-Мидлендс )
- Эсперанто [28]
- Эстонский [28]
- Финский [28]
- Филиппинский
- Французский ( бельгийский ) [28]
- Французский ( Франция )
- Французский ( швейцарский )
- фризский
- Галицкий
- Грузинский [28]
- Немецкий [28]
- Греческий ( современный ) [28]
- Гренландский
- Гуарани
- Гуджарати
- Хакка китайский 3
- Гаитянский креольский
- Хауса
- Гавайский
- иврит
- Высокий валирийский
- Хинди [28]
- Хмонг
- Венгерский [28]
- Исландский [28]
- Игбо
- Индонезийский [28]
- Я делаю
- Интерлингва
- Интерлингв
- Ирландский [28]
- Итальянский [28]
- Японский 4 [29]
- Каннада [28]
- Казахский
- Кхмерский
- Клингон
- Kʼicheʼ
- Кирунди
- Киньяруанда
- Конкани [30]
- Корейский
- Курдский [28]
- Кыргызский
- кечуа
- Ладакхи
- Лаосский
- латинский
- Ладино
- Латгальский
- Латышский [28]
- Ланг Бельта
- Lingua Franca Nova
- Лепча
- Лимбу
- Литовский
- Ложбан [28]
- Люксембургский
- македонский
- Майтхили
- Малагасийский
- Малайский [28]
- Малаялам [28]
- Мальтийский
- Маори
- Маратхи , [28]
- Монгольский
- Науатль ( классический )
- Навахо
- Непальский [28]
- Норвежский ( букмол ) [28]
- Северный сото
- Ногайский
- Одиа
- Оромо
- Октиан
- Папьяменто
- Палау
- Пушту
- Персидский [28]
- Персидский ( латинский алфавит ) 2
- Польский [28]
- Португальский ( бразильский ) [28]
- Португальский ( Португалия )
- Пенджаби [31]
- Пяш (искусственный язык)
- Румынский [28]
- Русский [28]
- Русский ( Латвия )
- Самоанский
- санскрит
- Шотландский гэльский
- Сербский [28]
- Шань (Тай Яй),
- Шарда
- Сесото
- Шона
- Синдхи
- Сингальский
- Словацкий [28]
- словенский
- Сомалийский
- Испанский ( Испания ) [28]
- Испанский ( латиноамериканский )
- Суахили [26]
- Шведский [28]
- Таджикский
- Тамильский [28]
- Татарский
- телугу
- тибетский
- Тсвана
- Тайский
- туркменский
- Турецкий [28]
- Татарский
- Уйгурский
- украинец
- Урду
- Узбекский
- Вьетнамский ( центральный вьетнамский ) [28]
- Вьетнамский ( северный вьетнамский )
- Вьетнамский ( Южный вьетнамский )
- Волапюк
- валлийский
- Волоф
- Коса
- идиш
- Йоруба
- Зулусский
- В настоящее время поддерживается только полностью диакритический арабский язык .
- Персидский язык написан английскими (латинскими) буквами .
- В настоящее время поддерживается только Pha̍k-fa-sṳ .
- В настоящее время поддерживаются только хирагана и катакана .
См. Также [ править ]
- Система синтеза речи фестиваля
- переводчик Google
- Синтезатор речи Microsoft
- Речь
Ссылки [ править ]
- ^ Перейти на eSpeak NG в раздаче NVDA # 5651
- ^ eSpeak TTS для Android
- ^ Пакет espeak-ng в Ubuntu
- ^ https://support.office.com/en-us/article/download-voices-for-immersive-reader-read-mode-and-read-aloud-4c83a8d8-7486-42f7-8e46-2b0fdf753130
- ^ Блог Google, Предоставление голоса большему количеству языков в Переводчике Google , май 2010 г.
- ^ Блог Google, слушайте нас сейчас , декабрь 2010 г.
- ^ Синтезатор речи eSpeak 3. ЯЗЫКИ
- ^ http://espeak.sourceforge.net/
- ^ а б в https://sourceforge.net/projects/espeak/files/espeak/
- ^ История Subversion (редакция 1)
- ^ История Subversion (редакция 56)
- ^ http://espeak.sourceforge.net/download.html
- ^ http://espeak.sourceforge.net/test/latest.html
- ^ ван Леуссен, Ян-Вилем; Тромп, Маартен (26 июля 2007 г.). « Преобразование латыни в речь»: 6. CiteSeerX 10.1.1.396.7811 . Цитировать журнал требует
|journal=
( помощь ) - ^ https://github.com/rhdunn/espeak/commit/63daaecefccde34b700bd909d23c6dd2cac06e20
- ^ https://github.com/rhdunn/espeak/commit/61522a12a38453a4e854fd9c9e0994ad80420243
- ^ https://github.com/nvaccess/nvda/issues/5651#issuecomment-170288487
- ^ Принятие ответственности за проект eSpeak и его будущее
- ^ Голосуйте за нового главного разработчика eSpeak
- ^ Измените название программы espeak на espeak-ng.
- ^ espeak-ng 1.49.0
- ^ Деннис Х. Клатт (1979). «Программное обеспечение для синтезатора каскадных / параллельных формант» (PDF) . Дж. Акустическое общество Америки, 67 (3) март 1980 г.
- ^ Список записанных фрикативов в eSpeakNG
- ^ https://github.com/espeak-ng/espeak-ng/blob/master/docs/languages.md
- ^ https://github.com/espeak-ng/espeak-ng/blob/master/CHANGELOG.md
- ^ a b Бутгерайт, Л., и Бота, А. (2009, май). Хадеда: Шумный способ попрактиковаться в написании словарного запаса с помощью мобильного телефона . На конференции IST-Africa 2009, Кампала, Уганда .
- ^ Hamiti, М., & Кастрати, Р. (2014). Адаптация eSpeak для преобразования текста в речь на албанском языке . Международный журнал проблем компьютерных наук (IJCSI) , 11 (4), 21.
- ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap Kayte, S., & Gawali , БД (2015). Синтез речи маратхи: обзор. Международный журнал о последних и инновационных тенденциях в вычислениях и коммуникациях, 3 (6), 3708-3711.
- ^ Пронк, Р. (2013). Добавление поддержки синтеза японского языка в систему eSpeak . Амстердамский университет.
- ^ Mohanan, С., Salkar С., Найк, Г., Dessai, NF, и Найк, S. (2012). Читатель текста для языка конкани. Автоматика и автономные системы , 4 (8), 409-414.
- Перейти ↑ Kaur, R., & Sharma, D. (2016). Улучшенная система преобразования текста в речь для языка панджаби с использованием eSpeak . Международный научно-исследовательский журнал техники и технологий , 3 (4), 500-504.
Внешние ссылки [ править ]
- eSpeakNG на GitHub
- Список рассылки eSpeakNG
- eSpeak перенесен на JavaScript
- Страница тестирования разрабатываемой версии eSpeakNG
- Статья журнала Tombuntu об eSpeak
- GUI для eSpeak
- Ruby API для eSpeak
- Lua API для eSpeak
- Интерфейс синтеза вокала eCantorix для eSpeak