eSpeak - eSpeak

eSpeakNG
Автор (ы) оригинала Джонатан Даддингтон
Разработчики) Рис Данн
Первый выпуск Февраль 2006 г . ; 15 лет назад ( 2006-02 )
Стабильный выпуск
1.50 / 2 декабря 2019 ; 22 месяца назад ( 2019-12-02 )
Репозиторий github .com / espeak-ng / espeak-ng /
Написано в C
Операционная система Linux
Windows
macOS
FreeBSD
Тип Синтезатор речи
Лицензия GPLv3
Веб-сайт github .com / espeak-ng / espeak-ng /

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 от eSpeakNG на английском языке

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

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

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

  1. вводимый текст переводится в фонемы произношения (например, вводимый текст xerox переводится на zi @ r0ks для произношения).
  2. произношение фонема синтезируется в звуковой , например, Zi @ r0ks звонкий , как цзы @ 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 и синтезатором Klatt :

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

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

Языки

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

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

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

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

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