Синтез и распознавание речи. Современные решения © А.В. Фролов, Г.В. Фролов, 2003 Попытки научить компьютеры общаться с людьми при помощи естественного голосового интерфейса предпринимались с первых лет истории компьютерной техники. В процессе многолетних исследований было выяснено, что к решению проблемы необходимо привлекать не только программистов, но и специалистов по языкознанию (лингвистике), радиоинженеров, математиков, биологов и даже психологов. В самом деле, для создания системы распознавания речи нужно решить множество задач. Прежде всего, нужно преобразовать колебания воздуха в электрические сигналы при помощи микрофона, отфильтровав при этом помехи и шумы. Далее каким-то образом сигнал необходимо представить в цифровой форме, доступной для обработки при помощи компьютера (оцифровать). Здесь есть разные возможности: можно вводить в компьютер информацию об амплитуде звукового сигнала, а можно анализировать спектральный состав сигнала, выделяя из сигнала набор основных частот. Эту информацию можно комбинировать. Специалисты по языкознанию необходимы для изучения принципов построения речи, выделения тех элементов речи, которые программа должна распознавать во входном потоке, — фонем, морфем, слогов, слов и т.п. Языкознание изучает такие аспекты речи, учет которых просто необходим при создании систем распознавания и синтеза речи. Надо сказать, что извлечение из речевого потока лингвистических конструкций представляет собой непростую задачу. Только ребенок, который учится говорить или читать, произносит слова по слогам, отделяя слоги и слова паузами. В реальной жизни речь представляет собой сплошной поток звуков. В процессе формирования сплошной речи звуки, соответствующие одним и тем же буквам, могут изменяться при соединении с другими звуками. Звуки сплошной речи содержат постоянно изменяющийся спектр гармонических частот, а также шум. Громкость и темп речи также постоянно изменяются. Более того, одна и та же фраза, сказанная разными людьми, или даже одним человеком, находящимся в разных психических состояниях, может иметь разную спектрально-временную окраску. Это сильно затрудняет создание универсальных систем распознавания, «понимающих» речь разных людей. Для того чтобы выделить из оцифрованного звука лингвистические конструкции, применяются различные математические методы в сочетании со специальным компьютерным оборудованием, таким, например, как аппаратные или программные нейронные сети. На протяжении всей истории систем распознавания речи эти методы постоянно изменялись. При этом одни методы отмирали из-за их неэффективности, а другие разрабатывались и совершенствовались. Исследования биологов помогают изучить механизмы образования и распознавания речи, которыми пользуется человек (а может быть, и животные). Пытаясь решить проблему речевого интерфейса, многие исследователи пытаются моделировать работу человеческих органов, таких как речевой тракт, ухо и нейронные системы головного мозга. И, наконец, при решении задачи создания речевого интерфейса компьютерных систем нужны психологи, так как без учета психологических особенностей человека невозможно создать по-настоящему удобный речевой интерфейс. Проблемы общения человека и компьютера выходят за рамки чисто технических наук. Это происходит, потому что современные компьютеры пытаются общаться с людьми с применением тех же способов, с помощью которых общаются между собой люди. И точно также как бывает трудно общаться человеку с больными, страдающими расстройствами психики, так же трудно будет ему общаться с компьютерной программой, демонстрирующей неадекватное психическое поведение. Отсюда вывод — если Вы программист и решили посвятить себя разработкам в области речевых технологий, Вам необходимо иметь представление о перечисленных выше смежных специальностях. Для наглядности мы свели все эти специальности в табл. В-1. Таблица В-1. Специальности, имеющие отношение к речевым технологиям
К счастью, сегодня различные компании, в том числе компания Microsoft, выпускают средства синтеза и распознавания речи в виде программных модулей и интерфейсов. Программисты, не обладающие познаниями в области лингвистики, математики и биологии, сможет использовать такие готовые интерфейсы и программные модули для добавления речевого интерфейса в собственные разработки (учет человеческой психологии, по-видимому, все же необходим для проектирования удобных речевых интерфейсов). Полагаясь на упомянутые выше разработки, программист окажется в ситуации, когда речевые возможности его программ будут ограничены возможностями использованных средств и технологий. Например, многие средства распознавания и синтеза речи не способны работать с русским языком, что ограничивает их использование в России. Заметим, что проблема создания компьютерных систем речевого общения в настоящий момент представляется довольно актуальной. Вместе с тем, она не слишком широко освещена в современной литературе. Причина этого заключается, на наш взгляд, не столько в отсутствии интереса к теме, сколько в нежелании разработчиков делиться с другими своими профессиональными секретами. Это создает дополнительные трудности для тех, кто только начинает осваивать речевые технологии. Тем не менее, многое можно найти в Интернете. В нашей книге мы попытались собрать и обобщить разрозненный материал с целью снабдить читателя некоторыми отправными базовыми знаниями, необходимыми не только для создания собственных речевых систем, но и для оптимального использования речевых систем, доступных на рынке программного обеспечения (как Вы увидите, такие системы уже существуют). Список литературы, посвященной данной тематике, а также соответствующие ссылки на ресурсы Интернета приведены в разделе «Библиографический список и ресурсы Интернета», расположенный в конце книги. |