Введение
Постановка задачи
Обзор литературы
Глава 1. Выбор инструментов для реализации задачи . . . . . . 12
1.1 Выбор аппаратного обеспечения
1.2 Выбор базовой архитектуры для построения системы
распознавания речи
1.3 Выбор источников данных для обучения акустической модели . . 13
1.3.1 Набор речевых данных с сайта VoxForge.org . . . . . . . . 14
1.3.2 Видео-хостинг YouTube
1.3.3 Записи радио-передач
1.3.4 Аудио-книги
1.3.6 Выбранные источники данных транскрибированной речи . 16
1.4 Выбор языка программирования
Глава 2. Структура и принцип работы акустической модели . 17
2.1 Структура нейронной сети
2.2 Описание процесса обучения акустической модели . . . . . . . . . 18
2.3 Функция потерь CTC Loss для обучения нейронной сети . . . . . 20
2.4 Вычисление результата предсказания с помощью максимального
декодирования (greedy search)
2.5 Вычисление результата предсказания с помощью лучевого
поиска (beam search)
2.6 Языковая модель
2.6.1 Использование языковой модели при декодировании CTC
матрицы
2.7 Выводы
Глава 3. Сбор данных для обучения акустической модели . . . 33
3.1 Формат набора данных
3.2 Создание корпуса речи с использованием аудио из видеофайлов
сервиса YouTube, а также сопоставленных пользовательских и
автоматически-сгенерированных субтитров . . . . . . . . . . . . . 34
3.3 Создание корпуса речи из аудио YouTube, разбиением по
промежуткам тишины и последующим подбором слов под
разбитые отрезки
3.4 Создание корпуса речи из записей и транскриптов передач «Эхо
Москвы»
3.4.1 Автоматическое выравнивание текста по аудио при
помощи утилиты aeneas
3.4.2 Автоматическое распознавание и вырезание рекламных
блоков и заставок из радио передач . . . . . . . . . . . . . 39
3.5 Наилучший из рассмотренных метод автоматического создания
корпуса речи
3.6 Автоматическая очистка корпуса речи от неверно-обрезанных
примеров с помощью промежуточной акустической модели . . . . 41
3.7 Выводы
Глава 4. Обучение модели
4.1 Контейнеризация процесса обучения с помощью технологии Docker 43
4.2 Обзор гиперпараметров обучения
4.3 Описание наборов данных, используемых в экспериментах . . . . 45
4.4 Структура экспериментов
4.5 Эксперименты
4.5.1 Оптимизация числа нейронов в скрытых слоях нейронной
сети
4.5.2 Обучение на всем наборе «yt-vad-1k-train» . . . . . . . . . 49
4.5.3 Обучение на всем наборе «yt-vad-650-clean-train» . . . . . . 51
4.5.4 Дообучение модели, обученной на данных
«yt-vad-1k-train», с помощью набора «yt-vad-650-clean-train» 53
4.5.5 Определение оптимальной размерности языковой модели . 54
4.6 Выводы
Глава 5. Создание системы индексации и поиска по речи,
распознанной в медиафайлах . . . . . . . . . . . . . . . . 56
5.1 Описание системы в целом
5.2 Компоненты системы
5.2.1 Модуль распознавания
5.2.2 Модуль индексации
5.2.3 Модуль поиска
5.3 Реализация
5.4 Выводы
Заключение
Список сокращений
Словарь терминов
Список литературы
Приложения
5.5 Реализация алгоритма префиксного поиска
5.6 Dockerfle контейнера для обучения модели
5.7 Реализация модуля распознавания для системы поиска по речи в
коллекции медиафайлов
5.8 Реализация модуля индексации для системы поиска по речи в
коллекции медиафайлов
5.9 Реализация модуля поиска для системы поиска по речи в
коллекции медиафайлов
За последние несколько лет отрасль машинного распознавания речи развивалась стремительно. Крупные компании, такие как Google, Microsoft и Яндекс, достигли [43; 48; 49] на сегодняшний день уровня 94-95% верного распознавания слов в речи, сокращая до нескольких процентов разрыв с человеческим
уровнем, оцениваемым в 96% [20].
С развитием технологий в области нейронных сетей и производства графических ускорителей, позволивших значительно увеличить скорость параллельных вычислений [8], появились проекты с использованием так называемых нейронных сетей глубокого обучения (Deep Neural Networks или DNN) [11; 14;
34; 46; 47]. В таких сетях, по сравнению с классическими, увеличено количество
скрытых слоев. Увеличение числа скрытых слоев позволило добиться значительного прогресса во многих задачах, считавшихся ранее доступными только для человека. Не исключением стала и задача распознавания речи.
Решения с использованием нейронных сетей для распознавания речи приходят на смену зарекомендовавшим себя реализациям с использованием скрытых марковских моделей (Hidden Markov Models, HMM) [41]. Решения, использующие HMM, требуют большего вмешательства человека [12] в отличие от
более современных методов, использующих нейронные сети. Появляются гибридные системы DNN-HMM, использующие нейронную сеть для предобработки в виде классификатора признаков для уменьшения размерности задачи для HMM [30; 51]. Кроме того, в последнее время решения на основе DNN начали
превосходить HMM по точности распознавания [14]. Особенно популярны в последнее время реализации, использующие нейронные сети от «начала и до конца» (End-to-End) [15; 16; 25]. Такие решения минимизируют участие человека в обучении модели, требуя от него лишь определения архитектуры нейронной сети и подготовки данных для тренировки.
Несмотря на значительный прогресс и адаптацию вышеприведенных методов в коммерческих продуктах, в сфере распознавания речи на сегодняшний день существует дефицит систем с открытым исходным кодом, способных достичь показателей, близких к человеческим. Особенно мало систем с поддержкой русского языка [1].
В данной работе рассмотрен процесс создания системы распознавания русской речи с использованием глубоких нейронных сетей, а также применения этой системы для текстового поиска по речи в большой коллекции медиафайлов. Описан принцип работы системы распознавания речи, основанной на использовании глубоких нейронных сетей и применении метода CTC
(Connectionist Temporal Classifcation) [12]. Также исследованы и реализованы
способы получения наборов данных для обучения нейронной сети из различных источников, проведено обучение нейронной сети на полученных данных с вариацией гиперпараметров и оценена точность получаемой модели. В конце работы приведена реализация примера возможного использования системы распознавания речи для поиска по речи в коллекции медиа-файлов.
За основу системы распознавания речи взят проект с отрытым исходным кодом Mozilla DeepSpeech по распознаванию английской речи с использованием DNN. Этот проект был начат в мае 2016 года и в ноябре 2017 достиг наименьшего уровня ошибки WER (Word Error Rate) в 6.5% на наборе данных LibriSpeech test-clean [3]. Проект основывается на работе группы исследователей из Baidu Research [16].
Итоги выполненной работы:
1. Рассмотрен принцип работы системы распознавания речи с применением глубоких нейронных сетей на основе архитектуры DeepSpeech.
2. Исследованы методы автоматического сбора данных для создания корпусов транскрибированной речи.
3. Созданы два корпуса русской транскрибированной речи «yt-vad-1k» и
«yt-vad-650-clean» объемом 1000 и 650 часов, пригодные для обучения современных систем распознавания речи с применением глубоких нейронных сетей.
4. Создана система распознавания русской речи, показывающая результат в 31% WER на корпусе речи с разнообразием голосов и шумов (набор данных «yt-vad-650-clean-test») и 21% WER на наборе с более чистой речью чтения текстов («voxforge-ru-clean-test»).
5. Создана система поиска по речи в большой коллекции медиафайлов с возможностью мгновенного перехода к воспроизведению искомого фрагмента.
Возможные применения результатов работы:
На основе метода создания корпуса транскрибированной речи для русского языка, предложенного в данной работе, могут быть собраны корпуса и для других языков. Архитектура DeepSpeech также имеет минимальное количество привязок к определенному языку (только задание алфавита), что позволяет использовать процесс обучения, описанный в данной работе, при создании систем распознавания речи для других языков. Известны успешные применения архитектуры DeepSpeech как для латинских языков, таких как английский, французский, так и для языков с гораздо большим размером алфавита, таких как китайский [15].
Дальнейшие перспективы разработки темы:
1. Дальнейшее исследование методов автоматического сбора корпусов транскрибированной речи и поиск источников для получения более качественных наборов данных.
2. Исследование применения других архитектур глубокой нейронной сети для повышения точности распознавания. Например, сравнение производительности при применении ячеек LSTM и GRU или рассмотрение
применения систем, основанных на механизме внимания вместо CTC.
3. Повышение скорости распознавания путем распараллеливания алгоритма лучевого поиска или переноса вычислений на графический ускоритель.
4. Исследование возможности применения архитектуры для распознавания на менее мощных ЭВМ (таких как мобильные устройства)
1. Беленко М., Балакшин П. Сравнительный анализ систем распознавания
речи с открытым кодом // Международный научно-исследовательский
журнал. — 2017. — 04 (58) Часть 4. — С. 13—18.
2. Меденников И. П. Методы, алгоритмы и программные средства распознавания русской телефонной спонтанной речи: дис. . . . канд. / Меденников
Иван Павлович. — 2016.
3. A Journey to <10% Word Error Rate. — 2017. — Accessed: 2018-04-18. https:
//hacks.mozilla.org/2017/11/a-journey-to-10-word-error-rate/.
4. A novel connectionist system for unconstrained handwriting recognition /
A. Graves [и др.] // IEEE transactions on pattern analysis and machine
intelligence. — 2009. — Т. 31, № 5. — С. 855—868.
5. Addressing the rare word problem in neural machine translation / M.-T. Luong
[и др.] // arXiv preprint arXiv:1410.8206. — 2014.
6. Advances in joint CTC-attention based end-to-end speech recognition with
a deep CNN encoder and RNN-LM / T. Hori [и др.] // arXiv preprint
arXiv:1706.02737. — 2017.
7. Attention-based models for speech recognition / J. K. Chorowski [и др.] //
Advances in neural information processing systems. — 2015. — С. 577—585.
8. Awan A. A., Subramoni H., Panda D. K. An In-depth Performance
Characterization of CPU-and GPU-based DNN Training on Modern
Architectures // Proceedings of the Machine Learning on HPC
Environments. — ACM. 2017. — С. 8.
9. Bahdanau D., Cho K., Bengio Y. Neural machine translation by jointly
learning to align and translate // arXiv preprint arXiv:1409.0473. — 2014.
10. Cold fusion: Training seq2seq models together with language models / A.
Sriram [и др.] // arXiv preprint arXiv:1708.06426. — 2017.64
11. Collobert R., Weston J. A unifed architecture for natural language processing:
Deep neural networks with multitask learning // Proceedings of the 25th
international conference on Machine learning. — ACM. 2008. — С. 160—167.
12. Connectionist temporal classifcation: labelling unsegmented sequence data
with recurrent neural networks / A. Graves [и др.] // Proceedings of the 23rd
international conference on Machine learning. — ACM. 2006. — С. 369—376.
13. CTC Networks and Language Models: Prefx Beam Search Explained. —
2018. — Accessed: 2018-04-18. https://medium.com/corti-ai/ctc-networksand-language-models-prefx-beam-search-explained-c11d1ee23306.
14. Deep neural networks for acoustic modeling in speech recognition: The shared
views of four research groups / G. Hinton [и др.] // IEEE Signal Processing
Magazine. — 2012. — Т. 29, № 6. — С. 82—97.
15. Deep Speech 2: End-to-End Speech Recognition in English and Mandarin /
D. Amodei [и др.] // arXiv preprint arXiv:1512.02595. — 2015.
16. Deep speech: Scaling up end-to-end speech recognition / A. Hannun [и др.] //
arXiv preprint arXiv:1412.5567. — 2014.
17. Dropout: A simple way to prevent neural networks from overftting / N.
Srivastava [и др.] // The Journal of Machine Learning Research. — 2014. —
Т. 15, № 1. — С. 1929—1958.
18. Empirical evaluation of gated recurrent neural networks on sequence modeling /
J. Chung [и др.] // arXiv preprint arXiv:1412.3555. — 2014.
19. End-to-end attention-based large vocabulary speech recognition / D. Bahdanau
[и др.] // Acoustics, Speech and Signal Processing (ICASSP), 2016 IEEE
International Conference on. — IEEE. 2016. — С. 4945—4949.
20. English conversational telephone speech recognition by humans and machines /
G. Saon [и др.] // arXiv preprint arXiv:1703.02136. — 2017.
21. Google voice search: faster and more accurate / H. Sak [и др.] // Google
Research blog. — 2015. — URL: https://research.googleblog.com/2015/09/
google-voice-search-faster-and-more.html.
22. Google’s neural machine translation system: Bridging the gap between human
and machine translation / Y. Wu [и др.] // arXiv preprint arXiv:1609.08144. —
2016.65
23. Graves A. Generating sequences with recurrent neural networks // arXiv
preprint arXiv:1308.0850. — 2013.
24. Graves A. Supervised sequence labelling // Supervised sequence labelling with
recurrent neural networks. — Springer, 2012. — С. 52—73.
25. Graves A., Jaitly N. Towards end-to-end speech recognition with recurrent
neural networks // International Conference on Machine Learning. — 2014. —
С. 1764—1772.
26. Graves A., Mohamed A.-r., Hinton G. Speech recognition with deep recurrent
neural networks // Acoustics, speech and signal processing (icassp), 2013 ieee
international conference on. — IEEE. 2013. — С. 6645—6649.
27. Haitsma J., Kalker T. A highly robust audio fngerprinting system. // Ismir.
Т. 2002. — 2002. — С. 107—115.
28. Heafeld K. KenLM: Faster and smaller language model queries // Proceedings
of the Sixth Workshop on Statistical Machine Translation. — Association for
Computational Linguistics. 2011. — С. 187—197.
29. How many hidden units should I use? — 2014. — Accessed: 2018-05-20. http:
//www.faqs.org/faqs/ai-faq/neural-nets/part3/section-10.html.
30. Hu H., Zahorian S. A. Dimensionality reduction methods for HMM phonetic
recognition // Acoustics Speech and Signal Processing (ICASSP), 2010 IEEE
International Conference on. — IEEE. 2010. — С. 4854—4857.
31. Hybrid CTC/Attention Architecture for End-to-End Speech Recognition / S.
Watanabe [и др.] // IEEE Journal of Selected Topics in Signal Processing. —
2017. — Т. 11, № 8. — С. 1240—1253.
32. Kingma D. P., Ba J. Adam: A method for stochastic optimization // arXiv
preprint arXiv:1412.6980. — 2014.
33. Kiros R., Salakhutdinov R., Zemel R. S. Unifying visual-semantic embeddings
with multimodal neural language models // arXiv preprint arXiv:1411.2539. —
2014.
34. Krizhevsky A., Sutskever I., Hinton G. E. Imagenet classifcation with deep
convolutional neural networks // Advances in neural information processing
systems. — 2012. — С. 1097—1105.66
35. Le Q. V., Jaitly N., Hinton G. E. A simple way to initialize recurrent networks
of rectifed linear units // arXiv preprint arXiv:1504.00941. — 2015.
36. Medsker L., Jain L. Recurrent neural networks // Design and Applications. —
2001. — Т. 5.
37. M¨uller M. Dynamic time warping // Information retrieval for music and
motion. — 2007. — С. 69—84.
38. Nallasamy U. Adaptation techniques to improve ASR performance on accented
speakers: дис. . . . канд. / Nallasamy Udhyakumar. — Carnegie Mellon
University, 2016.
39. On the properties of neural machine translation: Encoder-decoder approaches /
K. Cho [и др.] // arXiv preprint arXiv:1409.1259. — 2014.
40. Pascanu R., Mikolov T., Bengio Y. Understanding the exploding gradient
problem // CoRR, abs/1211.5063. — 2012.
41. Rabiner L. R. A tutorial on hidden Markov models and selected applications
in speech recognition // Proceedings of the IEEE. — 1989. — Т. 77, № 2. —
С. 257—286.
42. Sak H., Senior A., Beaufays F. Long short-term memory recurrent neural
network architectures for large scale acoustic modeling // Fifteenth annual
conference of the international speech communication association. — 2014.
43. Say “Privet” to Alice, Yandex’s Intelligent Assistant. — 2017. — Accessed: 2018-
05-4. https: / / yandex. com / company /blog / say- privet- to- alice- yandex- sintelligent-assistant/.
44. Scalable modifed Kneser-Ney language model estimation / K. Heafeld [и
др.] // Proceedings of the 51st Annual Meeting of the Association for
Computational Linguistics (Volume 2: Short Papers). Т. 2. — 2013. — С. 690—
696.
45. Show and tell: A neural image caption generator / O. Vinyals [и др.] //
Computer Vision and Pattern Recognition (CVPR), 2015 IEEE Conference
on. — IEEE. 2015. — С. 3156—3164.
46. Show, attend and tell: Neural image caption generation with visual attention /
K. Xu [и др.] // International Conference on Machine Learning. — 2015. —
С. 2048—2057.67
47. Simonyan K., Zisserman A. Very deep convolutional networks for large-scale
image recognition // arXiv preprint arXiv:1409.1556. — 2014.
48. State-of-the-art speech recognition with sequence-to-sequence models / C.-C.
Chiu [и др.] // arXiv preprint arXiv:1712.01769. — 2017.
49. The Microsoft 2016 conversational speech recognition system / W. Xiong
[и др.] // Acoustics, Speech and Signal Processing (ICASSP), 2017 IEEE
International Conference on. — IEEE. 2017. — С. 5255—5259.
50. Weigend A. On overftting and the effective number of hidden units //
Proceedings of the 1993 connectionist models summer school. Т. 1. — 1994. —
С. 335—342.
51. Yan Z.-J., Huo Q., Xu J. A scalable approach to using DNN-derived features
in GMM-HMM based acoustic modeling for LVCSR. // Interspeech. — 2013. —
С. 104—108.
52. Zaremba W., Sutskever I. Learning to execute // arXiv preprint
arXiv:1410.4615. — 2014.
53. Hochreiter S., Schmidhuber J. Long short-term memory // Neural
computation. — 1997. — Т. 9, № 8. — С. 1735—1780.