NETtalk: Нейронная сеть для произношения английского текста.
NETtalk (artificial neural network)
NETtalk: нейронная сеть для произношения английского текста. Разработана Sejnowski и Rosenberg в 1980-х. Обучение через обратное распространение и Больцмана.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
NETtalk — это искусственная нейронная сеть. Она является результатом исследований, проведённых в середине 1980-х годов Терренсом Сейновским и Чарльзом Розенбергом. Целью создания NETtalk было построение упрощённых моделей, способных пролить свет на сложность обучения когнитивным задачам, свойственным человеку, и их реализация в виде коннекционистской модели, также способной научиться выполнять аналогичную задачу. Авторы обучили её двумя способами: с использованием машины Больцмана и обратного распространения ошибки. NETtalk — это программа, которая учится произносить написанный английский текст, получая текст на вход и сравнивая его с фонетическими транскрипциями. Сеть была обучена на большом объёме английских слов и соответствующих произношений и способна генерировать произношения для новых слов с высокой точностью. Успех NETtalk вдохновил на дальнейшие исследования в области генерации произношения и синтеза речи, а также продемонстрировал потенциал нейронных сетей для решения сложных задач обработки естественного языка. Выходом сети являлся поток фонем, который передавался в DECtalk для создания слышимой речи. Программа добилась популярности и была показана в телепередаче Today. Процесс разработки был описан в интервью 1993 года. На создание обучающего набора данных потребовалось три месяца, а на обучение сети — всего несколько дней.
NETtalk is an artificial neural network. It is the result of research carried out in the mid 1980s by Terrence Sejnowski and Charles Rosenberg. The intent behind NETtalk was to construct simplified models that might shed light on the complexity of learning human level cognitive tasks, and their implementation as a connectionist model that could also learn to perform a comparable task. The authors trained it in two ways, once by Boltzmann machine and once by backpropagation. NETtalk is a program that learns to pronounce written English text by being shown text as input and matching phonetic transcriptions for comparison. The network was trained on a large amount of English words and their corresponding pronunciations, and is able to generate pronunciations for unseen words with a high level of accuracy. The success of the NETtalk network inspired further research in the field of pronunciation generation and speech synthesis and demonstrated the potential of neural networks for solving complex NLP problems. The output of the network was a stream of phonemes, which fed into DECtalk to produce audible speech, It achieved popular success, appearing on the Today show. The development process was described in a 1993 interview. It took three months to create the training dataset, but only a few days to train the network.
Архитектура
Сеть имела три слоя и 18 629 настраиваемых весов, что было большим числом по меркам 1986 года. Существовали опасения, что она может переобучиться на наборе данных, но обучение прошло успешно. Набор данных представлял собой подмножество из 20 000 слов корпуса Брауна, с ручной разметкой фонем и ударения для каждого символа. Вход сети состоял из 203 элементов, разделенных на 7 групп по 29 элементов в каждой. Каждая группа представляет собой one-hot кодирование одного символа. Существует 29 возможных символов: 26 букв, запятая, точка и разделитель слов (пробел). Скрытый слой содержал 80 элементов. Выходной слой состоял из 26 элементов. 21 элемент кодирует артикуляторные признаки (точка артикуляции, звонкость, высота гласного и т. д.) фонем, а 5 элементов кодируют ударение и границы слогов.
The network had three layers and 18,629 adjustable weights, large by the standards of 1986. There were worries that it would overfit the dataset, but it was trained successfully. The dataset was a 20,000 word subset of the Brown Corpus, with manually annotated phoneme and stress for each letter. The input of the network has 203 units, divided into 7 groups of 29 units each. Each group is a one hot encoding of one character. There are 29 possible characters: 26 letters, comma, period, and word boundary (whitespace). The hidden layer has 80 units. The output has 26 units. 21 units encode for articulatory features (point of articulation, voicing, vowel height, etc.) of phonemes, and 5 units encode for stress and syllable boundaries.
Достижения и ограничения
NETtalk был создан для изучения механизмов обучения правильному произношению английского текста. Авторы отмечают, что обучение чтению включает сложный механизм, задействующий множество отделов человеческого мозга. NETtalk не моделирует конкретные этапы обработки изображений и распознавания букв зрительной коры. Вместо этого он исходит из предположения, что буквы уже предварительно классифицированы и распознаны, а последовательности этих букв, составляющие слова, затем предъявляются нейронной сети в процессе обучения и при проверке ее работы. Задача NETtalk – научиться устанавливать правильные соответствия между правильным произношением и заданной последовательностью букв, основываясь на контексте, в котором эти буквы встречаются. Иными словами, NETtalk учится использовать буквы, окружающие произносимый в данный момент фонему, для получения подсказок относительно ее предполагаемого фонетического соответствия.
NETtalk was created to explore the mechanisms of learning to correctly pronounce English text. The authors note that learning to read involves a complex mechanism involving many parts of the human brain. NETtalk does not specifically model the image processing stages and letter recognition of the visual cortex. Rather, it assumes that the letters have been pre classified and recognized, and these letter sequences comprising words are then shown to the neural network during training and during performance testing. It is NETtalk's task to learn proper associations between the correct pronunciation with a given sequence of letters based on the context in which the letters appear. In other words, NETtalk learns to use the letters around the currently pronounced phoneme that provide cues as to its intended phonemic mapping.