-Вот
говорят: Карузо, Карузо... Ни слуха, ни голоса, да еще и картавит.
-А вы слышали?
-Сам не слышал, но мне Рабинович по телефону напел.
(Очень старый анекдот)
Александр КрейнесКомпьютерная телефония шагает по планете. Новая технология находит все больше самых разных применений в современном офисе. Приложения компьютерной телефонии могут быть направлены как на решение каких-то внутренних задач офисной жизни (экономия времени сотрудников, улучшение обслуживания клиентов), так и на решение задач связи информационной сети компании с внешним миром (удаленный доступ к данным, связь между филиалами компании).
Уже довольно привычной стала мысль о том, что средства компьютерной телефонии можно использовать для осуществления удаленного доступа к корпоративной информационной сети. Для этого применяются разнообразные системы интерактивного речевого ответа (interactive voice response - IVR). При этом приходится решать задачу организации речевого взаимодействия между человеком и компьютером. Чтобы в полной мере обеспечить такое взаимодействие, надо, во-первых, "научить" компьютер понимать человеческую речь, а во-вторых, добиться, чтобы сам компьютер "заговорил" по-человечески. Задачи эти сложные, их решением люди занимаются уже очень давно, и сейчас имеется возможность обеспечить голосовое взаимодействие между человеком и компьютером на некотором, скажем так, элементарном уровне.
Менее традиционный способ использования средств компьютерной телефонии - применение этой технологии для обеспечения связи между телефонными сетями различных филиалов организации через глобальную компьютерную сеть Internet. Такое приложение весьма важно для компаний, имеющих большое число филиалов, разбросанных в разных частях страны или даже мира. Эти компании несут немалые расходы на обеспечение телефонной связи между филиалами. Применение новых аппаратно-программных средств компьютерной телефонии может помочь существенно сократить затраты за счет использования Internet для передачи оцифрованных голосовых сообщений.
Именно об этих двух, так сказать, взаимно обратных применениях компьютерной телефонии пойдет у нас речь сегодня. Сначала мы подробно поговорим о средствах обеспечения голосового интерфейса между человеком и компьютером, а потом расскажем, как можно использовать компьютерную телефонию для связи между телефонными сетями удаленных филиалов организации.
Я ХОЧУ УСЛЫШАТЬ ГОЛОС...
Помнится, лет десять (или даже больше) назад в нашей стране появился такой компьютер - "Правец-8". На нем стояла программа под названием "Говорялка" (компьютер был болгарский), которая "озвучивала" любой набранный на клавиатуре текст. Это было похоже на классический "электронный голос", знакомый нам, например, по множеству детских фильмов. Особенно потешно получалась, как теперь это принято называть, "ненормативная лексика" - тут уж весь отдел сбегался послушать.
Я точно не знаю, как была устроена "Говорялка". Скорее всего, программа просто "собирала" тексты по буквам из заранее записанных фрагментов - никаких переходов между звуками, смягчений согласных и уж тем более ударений и интонаций в этой "речи" не было. С тех пор, конечно, техника шагнула далеко вперед. Тем не менее, обучить компьютер понимать человеческую речь и "озвучивать" различные синтезируемые "на лету" сообщения - по-прежнему чрезвычайно заманчивая задача. Решить ее означало бы существенно продвинуться на пути к реализации естественного интерфейса пользователя. Кроме того, полномасштабное голосовое взаимодействие между человеком и компьютером позволит совершенно по-новому подойти к проблеме удаленного доступа к базам данных. Человек сможет получать голосовую информацию, синтезированную по результатам поиска по базе, при помощи своего телефона.
Начнем с распознавания речи. Как утверждают психологи, восприятие речи-одно из самых загадочных проявлений человеческого интеллекта. Совершенно непонятно, каким образом дети учатся понимать устную речь и говорить. Речь ведь далеко не однозначна - определить, какому именно слову соответствует произнесенное сочетание звуков, можно только по контексту.
Задача машинного распознавания речи привлекает внимание специалистов в области computer science уже очень давно. Тем не менее, продвинуться в этом направлении пока удалось относительно недалеко. Чисто формально процесс распознавания речи можно описать буквально в нескольких фразах. Аналоговый сигнал, генерируемый микрофоном, оцифровывыается, и далее в речи выделяются так называемые фонемы, то есть элементарные фрагменты, из которых состоят все произносимые слова. Затем определяется, какое слово какому сочетанию фонем соответствует, и строится соответствующий словарь. Распознать слово - значит найти его в этом словаре по произнесенному сочетанию фонем. Точка.
Все это выглядит столь линейно, разумеется, лишь при таком предельно упрощенном описании. Проблемы всплывают, стоит хоть немного задуматься о том, как эту схему можно было бы реализовать на практике. Во-первых, человек обычно не делает паузы между словами, а при слитном произнесении к задаче распознавания прибавляется еще и задача выделения слов из потока речи, что заведомо более сложно. Особенно "неприятной" кажется необходимость выделять односложные слова - именно с ними и связано максимальное число ошибок реально существующих систем. Можно, конечно, потребовать, чтобы человек произносил слова по одному, делая достаточно продолжительные паузы (а лучше - чтобы каждое следующее слово произносилось после звукового сигнала). Не очень удобно, но для подачи простых команд сгодится.
Следующая проблема - различие голосов, диалектов, дикций и прочие индивидуальные особенности говорящих. Для того, чтобы система работала устойчиво, она должна, например, "осознавать", что мягкое южное и твердое северное "г" - это одна и та же буква. А звук "р" (см. эпиграф) чего стоит!
Именно из-за этих и многих других проблем до полного решения задачи распознавания речи по-прежнему весьма далеко. Существует два существенно различающихся режима работы: с настройкой на голос определенного человека и без такой настройки. Размеры словаря при работе с настройкой на голос (speaker-dependent) в настоящее время могут достигать нескольких (и даже многих) тысяч слов при слитном произнесении. Процедура настройки на голос выглядит следующим образом: человек читает некий специальным образом составленный текст, компьютер распознает слова и выдает вариант распознавания человеку. Человек исправляет ошибки и читает текст снова. После нескольких таких итераций процесс сходится, и компьютер оказывается в состоянии распознавать речь своего "хозяина."
Специалисты утверждают, что речь человека столь же индивидуальна, как отпечатки пальцев. Это наводит на мысль использовать рисунок речи человека для построения различных охранных систем. Система настраивается на голос человека (или на голоса некоторого числа людей - задав соответствующий персональный код, можно заставить систему загрузить требуемый словарь распознавания); для входа в систему человек должен произнести заранее условленное слово или комбинацию слов. При этом гарантируется, что компьютер среагирует только на голос своего хозяина - все остальные голоса просто не будут "поняты".
Наконец, последний, наиболее сложный для реализации, но одновременно и наиболее перспективный режим работы - распознавание без настройки на голос. При этом гарантируется, что система распознает любое включенное в словарь слово, кем бы оно ни было произнесено. Здесь, как правило, словари насчитывают небольшое количество слов (обычно не более двух десятков) и существуют для относительно небольшого числа языков (примерно тридцати); русский язык в это число хотя и входит, однако количество распознаваемых русских слов совсем уж невелико.
Создание словаря для распознавания речи без настройки на голос - дело весьма сложное и дорогое. Для решения этой задачи разработчикам приходится опрашивать большое число (несколько сотен или даже тысяч) носителей языка, выделять некие общие элементы речи, "усреднять" их определенным способом - и все этого для того, чтобы обеспечить распознавание каких-нибудь десяти-двадцати слов. Чаще всего словарь без настройки на голос пользователя требует раздельного произнесения слов. Для целого ряда приложений этого, однако, оказывается вполне достаточно.
"ТЕЛЕФОННОЕ ПРАВО"
Резкое увеличение популярности компьютерной телефонии, наблюдаемое в последние годы, в первую очередь связано с технической революцией в этой области - появлением гибких модульных систем на базе открытых стандартов. Это произошло лет пять назад и сопровождалось весьма существенным удешевлением аппаратуры и программного обеспечения для этой технологии. В современном понимании, компьютерная телефония - это технология, основанная на интеграции телефона и компьютера в единую телекоммуникационную среду, при этом, с одной стороны, компьютер используется для интеллектуальной коммутации телефонных вызовов, а с другой, телефон превращается в средство удаленного доступа к компьютерным ресурсам при использовании голосового интерфейса с пользователем. К этой же области относятся и другие прикладные компьютерные системы, связанные с поддержкой передачи информации по телефонным линиям, такие как голосовая почта, факсимильная почта, факс-серверы и так далее.
В этой области подача голосовых команд компьютеру становится одним из основных средств управления системой. Человек, имеющий в руках телефонный аппарат, может управлять удаленным компьютером либо набирая определенные комбинации цифр, либо подавая голосовые команды. Первый способ более прост в реализации и, фактически, на сегодняшний день является наиболее распространенным. Однако его возможности существенно ограничены. (Попытайтесь, например, представить себе, как может быть устроена подобная информационная система с железнодорожным расписанием. Как вводить станцию назначения?) Второй способ потенциально существенно более гибок, позволяет использовать куда больший "ассортимент" команд и избавляет абонента от необходимости вводить длинные комбинации цифр. Впрочем, все эти преимущества носят, так сказать, количественный характер. А вот и качественное. Все стандартные аппаратные средства компьютерной телефонии рассчитаны на работу с тоновым набором телефонного номера. Между тем, примерно 85% телефонных аппаратов в мире осуществляют импульсную кодировку набранных цифр. По ряду технических причин, на которых мы за недостатком места останавливаться здесь не будем, наиболее удобной альтернативой импульсному набору является именно использование голосовых команд. В условиях России, в частности, это может оказаться единственной возможностью создать полномасштабную прикладную систему компьютерной телефонии.
Каков же арсенал компьютерно-телефонных средств распознавания голоса? Здесь мы имеем в виду только средства модульных систем компьютерной телефонии на базе плат расширения для компьютера, о которых говорилось выше. В них используются специализированные процессоры для цифровой обработки аудиосигналов - DSP, в оперативную память которых в момент включения компьютера загружается программное обеспечение, поддерживающее выполнение всех необходимых функций. Именно это программное обеспечение и отвечает за выполнение всех необходимых операций нижнего уровня; прикладное программное обеспечение определяет только общую логическую структуру приложений. Такое решение дает возможность устанавливать системы компьютерной телефонии даже на относительно слабых персональных компьютерах.
Общая схема распознавания речи такова: поступающий по телефонным линиям голосовой сигнал сначала оцифровывается, а затем по внутренней шине передается на плату расширения для распознавания речи. Собственно распознаванием занимается специальное программное обеспечение, загруженное во внутреннюю оперативную память платы. Существуют и чисто программные средства для распознавания речи. Таковым, в частности, является программа для распознавания речи в компьютерной телефонии VRSoft, представленная компанией Voice Control Systems (VCS). Работа с такой программой позволяет, с одной стороны, избежать расходов на приобретение дополнительного оборудования, а с другой, существенно повышает требования к используемому компьютеру и уменьшает число каналов одновременного распознавания. Например, стандартная плата распознавания речи VR/160, выпускаемая Dialogic, может "обслужить" до 16 каналов одновременно, а возможности VRSoft ограничены четырьмя каналами. Помимо простых плат для распознавания речи, Dialogic выпускает и куда более мощное аппаратное обеспечение - семейство плат Antares, специально предназначенных для разработки продвинутых голосовых приложений. Antares представляет собой четырехпроцессорную плату расширения с большим объемом оперативной памяти. Программируя эту плату, можно создавать любые телефонно-компьютерные приложения на одной плате - Antares объединяет в себе возможности всех плат семейства Dialogic. Важным свойством Antares является наличие открытой платформы для разработки загружаемого программного обеспечения, что позволяет программисту выйти за рамки разработки собственно приложений и писать программы непосредственно для DSP-платы.
В компьютерной телефонии применяются все три режима распознавания речи. Распознавание речи с настройкой на голос используется в различных системах, имеющих конкретного хозяина (хозяев). Например, можно отдавать голосовые команды набора номера при работе с мобильным телефоном - едет человек в машине, включает телефон и произносит: "позвонить в офис" или "позвонить такому-то", а потом система автоматически набирает нужный номер. Для того, чтобы выполнить такую задачу, телефон должен быть включен в соответствующую систему, работающую с распознаванием голоса. Далее - пользователь может диктовать по телефону необходимые для отправки сообщения и указывать (также голосом), по какому адресу их следует направлять. Защитные голосовые системы, в которых интонационный рисунок речи используется как пароль, применяются для защиты от несанкционированного доступа к данным.
Распознавание речи без настройки на голос особенно важно для российских пользователей - о причинах этого уже говорилось выше. Как всегда, основой для распознавания речи здесь служат словари распознавания. Всего существует три типа словарей для компьютерной телефонии. Во-первых, это цифровой словарь, требующий раздельного произнесения слов. С его помощью можно распознавать цифры от нуля до девяти, а также простейшие команды типа "да", "нет", "стоп" и так далее. Такие словари созданы для очень многих языков, в том числе и для русского. Второй вид словаря - алфавитно-цифровой, где помимо цифр и простых команд присутствуют наименования всех букв алфавита. Используя такой словарь, можно построить систему, где любое слово можно продиктовать по буквам (например, в справочной системе или системе заказа билетов - наименование станции назначения). Эти словари построены также для многих языков - от английского (с разными акцентами) до иврита и японского, однако с русским языком работать в таком режиме пока нельзя. Третий вид словарей - словари для распознавания слитной речи. Здесь набор слов еще меньше, чем в цифровом словаре - цифры и слова "да" и "нет" - однако допускается их слитное произнесение. Словари для распознавания слитной речи имеются только для небольшого количества языков - английского, французского, немецкого, испанского, корейского и еще нескольких.
Российских пользователей, бесспорно, более всего может заинтересовать вопрос, насколько качественно осуществляется распознавание цифр в условиях нашей телефонной сети. Московская компания CompTek International, занимающаяся адаптацией аппаратных и программных средств компьютерной телефонии к работе в российских условиях, провела тестирование распознавания наименований цифр. От цифры к цифре результаты несколько разнятся, но в целом частота правильного распознавания составляет 75-80 процентов, что позволяет говорить о достаточно устойчивой работе системы. Появились и первые российские приложения технологии распознавания телефонной речи. Так, компания "Империя" недавно представила свой продукт, где распознавание речи применяется для поддержки голосового набора номера на мобильном телефоне. Это слегка напоминает способ, когда вы отдаете команды телефону (о чем говорилось чуть выше), только здесь пользователь должен по одной перечислить все цифры номера. Прежде всего, такая система очень удобна для тех, кому часто приходится звонить по телефону, сидя за рулем автомобиля. Другой пример системы, работающей с распознаванием речи на русском языке - система подбора кадров, продукт компании Артикс. При работе с этой системой абоненту задается ряд вопросов, ответы на которые предлагается дать, назвав номер подходящего варианта (варианты ответа также озвучиваются системой). Произнесенный номер распознается системой и заносится в базу данных.
НУ ЧТО ТЫ МОЛЧИШЬ КАК РЫБА ОБ ЛЕД?
Обратная операция по отношению к распознаванию речи - преобразование текст-речь. Так называется технология, позволяющая генерировать речь по тексту. Основная область применения - различные автоматические системы, предусматривающие голосовую передачу информации: справочные системы или программы автоматического чтения по телефону. Чуть ниже мы несколько подробнее расскажем об этих применениях.
Простейшая разновидность преобразования текст-речь - "сборка" сообщений из отдельных речевых фрагментов. Пример - информатор железнодорожной справочной, где в заранее заготовленное сообщение надо подставить наименование станции назначения, время отправления и (или) стоимость билета. Для этого надо заготовить речевые фрагменты с числительными и некоторыми дополнительными словами, чтобы сообщение звучало более естественно (например, надо учесть, что по-русски говорят "двадцать один рубль" и "двадцать два рубля", но "двадцать пять рублей"). Кроме того, необходимо, чтобы вставляемые речевые фрагменты правильно вписывались в общий интонационный рисунок фразы. Добиться этого не так просто, однако вполне возможно. Аналогичные системы, озвучивающие суммы остатка средств на счете и другую информацию (banking by phone), уже используются целым рядом российских банков.
В качестве аппаратной базы для реализации подобных систем можно применять любую компьютерную аппаратуру для воспроизведения оцифрованной речи. В частности, для этого подойдет и Sound Blaster. Для телефонных же приложений (которые, с нашей точки зрения, наиболее интересны - какой смысл озвучивать информацию человеку, который стоит рядом с компьютерным монитором) применяются голосовые платы, способные воспроизводить оцифрованную речь по телефонным линиям. Такие платы выпускаются многими компаниями. Подчеркнем, что сама генерация сообщений осуществляется в рамках прикладной программы, голосовая же плата используется просто для воспроизведения речи.
Техника сборки из готовых речевых фрагментов позволяет реализовать подавляющее большинство приложений, где требуется синтезировать голосовое сообщение по текстовой информации. В последнее время, однако, все большее распространение получают программы, основанные на гораздо более мощной и универсальной технике синтеза голосовых сообщений по произвольному тексту. Именно эту технику, как правило, и имеют в виду, говоря о преобразовании текст-речь.
В настоящее время существуют два принципиально различных способа смоделировать человеческую речь. Первый из них предполагает моделирование собственно голосового сигнала. В этом случае, как и при распознавании речи (см. выше), речь разбивается на элементы, из которых впоследствии "собираются" отдельные слова и текст в целом. Второй подход - моделирование голосового аппарата человека. Известно, каким образом изменяется положение губ, языка и зубов при произнесении того или иного звука. Зная это, можно синтезировать соответствующий звук.
Однако все это очень сложно. Во-первых, надо добиться, чтобы сами синтезируемые звуки были естественными. Во-вторых (что, наверное, еще сложнее) надо "снабдить" искусственную речь естественными интонациями и ударениями в словах. Все это привело к тому, что прямое преобразование текст-речь применяется не слишком широко, а сама синтезированная речь звучит достаточно неестественно.
Появились, впрочем, первые промышленные приложения этой технологии. Так, в состав продукта GroupWise 4.1 (Novell) в качестве дополнительного средства входит программа, осуществляющая чтение электронных писем по телефону. Разумеется, эта система работает только с английским языком.
Отдельного упоминания заслуживает очень модное в настоящее время направление - чтение страниц Internet по телефону. В частности, именно эту задачу решает продукт Web-On-Call Voice Browser, представленный компанией NetPhonic Communication Inc. на последней выставке Computer Telephony Expo. Данный продукт обеспечивает доступ к Internet всем пользователям, имеющим телефон с тоновым набором. Абонент такой системы может прослушивать содержание документов по телефону и получать копии документов по факсу или электронной почте - для доступа к нужному документу достаточно пройти по "дереву" голосовых меню.
Используется преобразование текст-речь и в приложениях компьютерной телефонии - на нем основаны различные информационные системы, где воспроизведение информации не сводится к озвучиванию числительных. Уже не раз упоминавшийся Dialogic, в частности, выпускает специальные платы на базе DSP, где преобразование текст-речь выполняется программным обеспечением, загруженным в оперативную память платы. К сожалению, с русским языком это программное обеспечение пока не работает, хотя в последнее время появились сообщения, что компания BeST (Berkeley Speech Technologies) близка к завершению программного обеспечения преобразования текст-речь для русского языка.
ОБРАТНАЯ ЗАДАЧА КОМПЬЮТЕРНОЙ ТЕЛЕФОНИИ
Итак, мы рассказали о том, какие средства существуют для построения приложений доступа к корпоративным информационным системам по телефонной сети. Теперь рассмотрим, каким образом можно применить компьютерную телефонию для решения обратной задачи - осуществления связи между телефонными сетями удаленных друг от друга филиалов компании через компьютерную сеть Internet.
Не так давно компания VocalTec анонсировала новый продукт под названием VocalTec Telephony Gateway. Данный продукт представляет собой аппаратно-программный шлюз между PBX, обслуживающей офисную телефонную сеть, и всемирной компьютерной сетью Internet. Сотрудник организации, где используется данная технология, может набирать местный номер любого другого сотрудника этой организации, не заботясь о том, где фактически находится данный сотрудник - в соседней комнате или в удаленном на несколько тысяч километров филиале компании.
Офисная PBX, получив от сотрудника "местный" номер, в первую очередь определяет, находится ли вызываемый номер в том же офисе, или речь идет о вызове удаленного филиала. Если звонок местный, то PBX выполняет все необходимые действия самостоятельно. Если же необходима дальняя связь, то звонок передается на обработку в Telephony Gateway. Последний определяет Internet-адрес требуемого филиала (в соответствии с набранным местным номером). В процессе разговора шлюз оцифровывает, сжимает и разделяет на пакеты голосовой сигнал, после чего передает его по Internet. В удаленном офисе стоит точно такой же шлюз, выполняющий обратное преобразование. Получающийся голосовой сигнал передается местной PBX, которая и отправляет его по назначению.
На аппаратном уровне шлюз Telephony Gateway представляет собой отдельный персональный компьютер, где установлены компьютерно-телефонные платы производства Dialogic: плата интерфейса с PBX и голосовая плата, выполняющая необходимую оцифровку и сжатие голоса. Кроме того, в компьютере установлена плата, осуществляющая функции интерфейса между системой и глобальной сетью. Для работы со шлюзом необходим компьютер классом не ниже 486-DX/4-100 с оперативной памятью не менее 24 мбайт, на котором установлено программное обеспечение Windows NT 4.0 Workstation. Один IP-адрес можно использовать для обслуживания максимум четырех телефонных линий. При этом на одну телефонную линию требуется канал пропускной способностью 11 Кбит/с.
Для сотрудника, набирающего номер удаленного офиса, весь процесс соединения не слишком отличается от того, как если бы вызываемое им лицо находилось за соседней стенкой. Отличие состоит, во-первых, в том, что шлюз VocalTec может обеспечивать голосовую поддержку процессу соединения - выдавать какие-либо подсказки (если это необходимо) или голосовую информацию о результатах соединения. Кроме того, поскольку речь идет о связи через Internet, в разговоре неизбежно возникают паузы продолжительностью в доли секунды - примерно как при использовании спутникового телефона. Для большинства применений такое качество связи вполне удовлетворительно, а стоимость переговоров может быть порядка на два ниже.
Александр Крейнес - научный сотрудник Института кристаллографии РАН. С ним можно связаться при помощи электронной почты по адресу kreines@cti.ru.