Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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: интро от 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. step - синтез звука из просодических данных [ править ]

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

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

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

Языки [ править ]

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

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

См. Также [ править ]

  • Система синтеза речи фестиваля
  • переводчик Google
  • Синтезатор речи Microsoft
  • Речь

Ссылки [ править ]

  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. ^ а б в 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 . Цитировать журнал требует |journal=( помощь )
  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. ^ a b Бутгерайт, Л., и Бота, А. (2009, май). Хадеда: Шумный способ попрактиковаться в написании словарного запаса с помощью мобильного телефона . На конференции IST-Africa 2009, Кампала, Уганда .
  27. ^ Hamiti, М., & Кастрати, Р. (2014). Адаптация eSpeak для преобразования текста в речь на албанском языке . Международный журнал проблем компьютерных наук (IJCSI) , 11 (4), 21.
  28. ^ 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.
  29. ^ Пронк, Р. (2013). Добавление поддержки синтеза японского языка в систему eSpeak . Амстердамский университет.
  30. ^ Mohanan, С., Salkar С., Найк, Г., Dessai, NF, и Найк, S. (2012). Читатель текста для языка конкани. Автоматика и автономные системы , 4 (8), 409-414.
  31. Перейти ↑ 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