ESpeak - ESpeak

eSpeakNG
Оригинальный автор (ы)Джонатан Даддингтон
Разработчики)Рис Данн
изначальный выпускФевраль 2006 г.; 14 лет назад (2006-02)
Стабильный выпуск
1.50 / 30 октября 2020; 27 дней назад (2020-10-30)
Репозиторийgithub.com/ espeak-ng/ espeak-ng/
Написано вC
Операционная системаLinux
Windows
macOS
FreeBSD
ТипСинтезатор речи
ЛицензияGPLv3
Интернет сайтgithub.com/ espeak-ng/ espeak-ng/

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

Из-за своего небольшого размера и большого количества языков он включен в качестве синтезатора речи по умолчанию в NVDA [1] Открытый исходный код читатель экрана для Windows, а также для Android,[2] Ubuntu[3] и другие дистрибутивы Linux. Его предшественник eSpeak был рекомендован Microsoft в 2016 году.[4] и использовался Гугл переводчик для 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 eSpeak была первой версией eSpeak, версия которой контролировалась с помощью подрывная деятельность,[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 "Привет [[w3: ld]]" скажет Об этом звукеПривет мир по-английски.

Метод синтеза

ESpeakNG: интро от eSpeakNG на английском языке

eSpeakNG можно использовать в качестве переводчика текста в речь по-разному, в зависимости от того, какой шаг преобразования текста в речь пользователь хочет использовать.

1. шаг - перевод текста в фонемы

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

  1. вводимый текст переводится на фонемы произношения (например, вводимый текст ксерокопия переводится на zi @ r0ks для произношения).
  2. фонемы произношения синтезируются в звук, например, zi @ r0ks озвучивается как Об этом звукеzi @ r0ks монотонно

Чтобы добавить интонации к речи, т.е. просодия необходимы данные (например, ударение слога, падающая или повышающаяся высота основной частоты, пауза и т. д.) и другая информация, которая позволяет синтезировать более человечную, немонотонную речь. Например. в формате eSpeakNG ударный слог добавляется с использованием апострофа: z'i @ r0ks что обеспечивает более естественную речь: Об этом звукеz'i @ r0ks с интонацией

Для сравнения два образца с данными просодии и без них:

  1. [[DIs Iz m0noUntoUn spi: tS]] пишется Об этом звукемонотонно
  2. [[DIs Iz 'Int @ n, eItI2d sp'i: tS]] пишется Об этом звукеинтонационно

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

2. шаг - синтез звука из просодических данных

ESpeakNG предоставляет два разных типа формант синтез речи используя два разных подхода. С собственным синтезатором eSpeakNG и Клатт синтезатор:[22]

  1. Синтезатор eSpeakNG создает озвученные звуки речи, такие как гласные и сонорные согласные от аддитивный синтез сложение синусоидальных волн для получения общего звука. Глухие согласные например / с / производятся воспроизведением записанных звуков,[23] потому что они богаты гармониками, что делает аддитивный синтез менее эффективным. Звонкие согласные, такие как / z /, получаются путем смешивания синтезированного вокализованного звука с записанным образцом невокализованного звука.
  2. Синтезатор Klatt в основном использует те же формантные данные, что и синтезатор eSpeakNG. Но он также производит звуки субтрактивный синтез начав с генерируемого шума, богатого гармониками, а затем применив цифровые фильтры и обволакивающий отфильтровать необходимый частотный спектр и звуковую огибающую для конкретного согласного (s, t, k) или сонорного (l, m, n) звука.

Для MBROLA голоса, eSpeakNG преобразует текст в фонемы и связанные с ними контуры высоты тона. Он передает это в программу MBROLA, используя формат файла PHO, захватывая аудио, созданное на выходе MBROLA. Затем этот звук обрабатывается eSpeakNG.

Языки

eSpeakNG выполняет синтез текста в речь для следующих языков:[24][25]

  1. Абаза
  2. африкаанс[26]
  3. албанский[27]
  4. Амхарский
  5. Древнегреческий
  6. арабский1
  7. Арагонский[28]
  8. Армянский (Восточноармянский )
  9. Армянский (Западноармянский )
  10. Ассамский
  11. Азербайджанский
  12. Башкирский
  13. Баскский
  14. Белорусский
  15. Бенгальский
  16. Бходжпури
  17. Бишнуприя Манипури
  18. Боснийский
  19. болгарский[28]
  20. Бирманский
  21. Кантонский[28]
  22. Каталонский[28]
  23. Себуано
  24. Чероки
  25. Чичева
  26. Китайский (Мандарин )
  27. Корсиканский
  28. хорватский[28]
  29. Чешский
  30. Чувашский
  31. Датский[28]
  32. Голландский[28]
  33. Дзонгка
  34. английский (Американец )[28]
  35. английский (Британский )
  36. английский (Карибский бассейн )
  37. английский (Ланкастерский )
  38. английский (Полученное произношение )
  39. английский (Шотландский )
  40. английский (западное Средиземье )
  41. эсперанто[28]
  42. эстонский[28]
  43. Финский[28]
  44. Французский (бельгийский )[28]
  45. Французский (Франция )
  46. Французский (Швейцарский )
  47. фризский
  48. Галицкий
  49. Грузинский[28]
  50. Немецкий[28]
  51. Греческий (Современный )[28]
  52. Гренландский
  53. Гуарани
  54. Гуджарати
  55. Хакка китайский
  56. Гаитянский креольский
  57. Хауса
  58. Гавайский
  59. иврит
  60. хинди[28]
  61. Хмонг
  62. венгерский язык[28]
  63. исландский[28]
  64. Игбо
  65. индонезийский[28]
  66. Я делаю
  67. Интерлингва
  68. Ирландский[28]
  69. Итальянский[28]
  70. Японский3[29]
  71. Каннада[28]
  72. Казахский
  73. Кхмерский
  74. Клингон
  75. Kʼicheʼ
  76. Конкани[30]
  77. Корейский
  78. Курдский[28]
  79. Кыргызский
  80. кечуа
  81. Лаосский
  82. латинский
  83. Латгальский
  84. латышский язык[28]
  85. Lingua Franca Nova
  86. Лепча
  87. Лимбу
  88. Литовский
  89. Ложбан[28]
  90. Люксембургский
  91. македонский
  92. Майтхили
  93. Малагасийский
  94. малайский[28]
  95. Малаялам[28]
  96. Мальтийский
  97. Маори
  98. Маратхи,[28]
  99. Монгольский
  100. Науатль (Классический )
  101. Навахо
  102. Непальский[28]
  103. Норвежский (Букмол )[28]
  104. Ногайский
  105. Одиа
  106. Оромо
  107. Папьяменто
  108. Пушту
  109. Персидский[28]
  110. Персидский (Латинский алфавит )2
  111. Польский[28]
  112. португальский (Бразильский )[28]
  113. португальский (Португалия )
  114. Пенджаби[31]
  115. Пяш (искусственный язык)
  116. румынский[28]
  117. русский[28]
  118. русский (Латвия )
  119. Самоанский
  120. санскрит
  121. Шотландский гэльский
  122. сербский[28]
  123. Шан (Тай Яй),
  124. Шарда
  125. Сесото
  126. Шона
  127. Синдхи
  128. Сингальский
  129. словацкий[28]
  130. словенский
  131. Сомалийский
  132. испанский (Испания )[28]
  133. испанский (Латиноамериканская )
  134. суахили[26]
  135. Шведский[28]
  136. Таджикский
  137. Тамильский[28]
  138. Татарский
  139. телугу
  140. Тсвана
  141. Тайский
  142. туркменский
  143. турецкий[28]
  144. Татарский
  145. Уйгурский
  146. украинец
  147. Урду
  148. Узбекский
  149. вьетнамский (Центрально-вьетнамский )[28]
  150. вьетнамский (Северный Вьетнам )
  151. вьетнамский (Южный Вьетнам )
  152. Валирийский
  153. валлийский
  154. Волоф
  155. Коса
  156. идиш
  157. Йоруба
  158. Зулусский
  1. В настоящее время только полностью диакритический арабский поддерживается.
  2. Персидский написано с использованием Английские (латинские) символы.
  3. В настоящее время только Хирагана и Катакана поддерживаются.

Смотрите также

использованная литература

  1. ^ Переключиться на eSpeak NG в раздаче NVDA # 5651
  2. ^ eSpeak TTS для Android
  3. ^ пакет espeak-ng в Ubuntu
  4. ^ https://support.office.com/en-us/article/download-voices-for-immersive-reader-read-mode-and-read-aloud-4c83a8d8-7486-42f7-8e46-2b0fdf753130
  5. ^ Блог Google, Голосование на других языках в Переводчике Google, Май 2010 г.
  6. ^ Блог Google, Послушайте нас сейчас, Декабрь 2010 г.
  7. ^ Синтезатор речи eSpeak 3. ЯЗЫКИ
  8. ^ http://espeak.sourceforge.net/
  9. ^ а б c https://sourceforge.net/projects/espeak/files/espeak/
  10. ^ История Subversion (редакция 1)
  11. ^ История Subversion (редакция 56)
  12. ^ http://espeak.sourceforge.net/download.html
  13. ^ http://espeak.sourceforge.net/test/latest.html
  14. ^ ван Леуссен, Ян-Вилем; Тромп, Маартен (26 июля 2007 г.). «От латыни к речи»: 6. CiteSeerX  10.1.1.396.7811. Цитировать журнал требует | журнал = (Помогите)
  15. ^ https://github.com/rhdunn/espeak/commit/63daaecefccde34b700bd909d23c6dd2cac06e20
  16. ^ https://github.com/rhdunn/espeak/commit/61522a12a38453a4e854fd9c9e0994ad80420243
  17. ^ https://github.com/nvaccess/nvda/issues/5651#issuecomment-170288487
  18. ^ Принятие ответственности за проект eSpeak и его будущее
  19. ^ Проголосуйте за нового главного разработчика eSpeak
  20. ^ Измените название программы espeak на espeak-ng.
  21. ^ espeak-ng 1.49.0
  22. ^ Деннис Х. Клатт (1979). «Программное обеспечение для синтезатора каскадных / параллельных формант» (PDF). Дж. Акустическое общество Америки, 67 (3) март 1980 г.
  23. ^ Список записанных фрикативов в eSpeakNG
  24. ^ https://github.com/espeak-ng/espeak-ng/blob/master/docs/languages.md
  25. ^ https://github.com/espeak-ng/espeak-ng/blob/master/CHANGELOG.md
  26. ^ а б Бутгерайт, Л., и Бота, А. (2009, май). Хадеда: шумный способ попрактиковаться в правописании с помощью мобильного телефона.. В Конференция IST-Africa 2009, Кампала, Уганда.
  27. ^ Хамити, М., и Кастрати, Р. (2014). Адаптация eSpeak для преобразования текста в речь на албанском языке. Международный журнал проблем компьютерных наук (IJCSI), 11(4), 21.
  28. ^ а б c d е ж г час я j k л м п о п q р s т ты v ш Икс y z аа ab ac объявление ае аф аг ах ай aj ак аль я ан ао ap Кайте, С., и Гавали, Д. Б. (2015). Синтез речи маратхи: обзор. Международный журнал о последних и инновационных тенденциях в вычислениях и коммуникациях, 3 (6), 3708-3711.
  29. ^ Пронк, Р. (2013). Добавление поддержки синтеза японского языка в систему eSpeak. Амстердамский университет.
  30. ^ Моханан, С., Салкар, С., Наик, Г., Дессай, Н. Ф., и Найк, С. (2012). Читатель текста для языка конкани. Автоматизация и автономная система, 4(8), 409-414.
  31. ^ Каур, Р., и Шарма, Д. (2016). Улучшенная система преобразования текста в речь для языка панджаби с использованием eSpeak. Международный научно-исследовательский журнал техники и технологий, 3(4), 500-504.

внешние ссылки