Голосовые компьютерные технологии становятся сегодня все более популярными. Задача обучения компьютера навыкам общения с человеком при помощи обычной речи привлекает внимание как известных гигантов компьютерной индустрии, так и относительно небольших компаний, специализирующихся исключительно на этой области индустрии телекоммуникаций. Компьютеры уже научились понимать команды человека и озвучивать текстовые файлы. Впрочем, голосовые технологии для настольных систем выглядят чем-то вроде забавы - удобно, но при необходимости можно обойтись и без них. А вот для развивающейся необычайно быстрыми темпами компьютерной телефонии голосовые технологии - это насущная необходимость.
Основная идея компьютерной телефонии - сочетание мощи компьютерного интеллекта с простотой и доступностью телефонной связи. Благодаря этой технологии, можно связываться с удаленными компьютерами, и, ответив на несколько вопросов голосового меню, выполнить достаточно широкий набор действий: получить телефонное соединение с любым сотрудником компании-пользователя или оставить голосовое сообщение, осуществить доступ к базе данных и получить информацию либо в голосовом виде, либо по факсу. Помимо этого, компьютерная телефония позволяет производить интеллектуальную коммутацию входящего или исходящего звонка, переключать звонок с одного номера телефона на другой, как в пределах организации, так и "наружу" и производить большое количество других действий.
Сложные приложения компьютерной телефонии формируются из ограниченного числа относительно простых вызовов функций, реализующих достаточно сложные реальные алгоритмы, базирующиеся на ряде следующих аппаратных и программных средств.
Запись и воспроизведение голоса. Чтобы общаться с человеком по телефону, голосовая система должна уметь записывать и воспроизводить человеческую речь. Простейшим примером такой системы является обыкновенный автоответчик, где голос записывается на магнитную ленту, а потом воспроизводится. В современных системах компьютерной телефонии голос записывается в цифровом виде на диск, обычно по методу PCM (Pulse Code Modulation). Аналоговый электрический сигнал, передающий голос, подвергается цифровому преобразованию через определенные промежутки времени. Согласно известной теореме Найквиста, частота оцифровки или частота выборки должна быть вдвое выше максимальной частоты, присутствующей в спектре оцифровываемого сигнала. Общепринятым стандартом при передаче голоса является сохранение в его спектре частот до 4 кГц - при этом голос, с одной стороны, сохраняет узнаваемость, а с другой - не требует для своей передачи высококачественных линий. Отсюда получается, что частота выборки должна составлять 8 кГц, а общепринятое разрешение аналого-цифрового преобразования составляет 256 уровней. Для кодировки такого преобразования необходимо 8 бит информации. Таким образом, для кодирования голосового сигнала требуется скорость 64 Кбит/с.
Распознавание набранных абонентом цифр. Системы компьютерной телефонии должны воспринимать команды абонента, которые в простейшем случае вводятся путем набора цифры на телефонном аппарате. Отсюда следует, что аппаратура для компьютерной телефонии должна распознавать, какую цифру набрал абонент. Здесь следует отметить, что сегодня существуют две основные принципиально различные системы набора номера - DTMF (Dual-Tone Multifrequency) и импульсный набор. Система DTMF принята в США, Израиле и ряде других стран, импульсный набор - в большинстве европейских стран, России и Японии. В системе DTMF (или тоновом наборе) каждая цифра кодируется звуковым сигналом, представляющим собой сочетание двух частот, отвечающих координатам соответствующей цифры на наборной клавиатуре телефона. Обычно на такой клавиатуре имеется четыре горизонтальных и три вертикальных ряда клавиш, соответственно, в системе DTMF имеется двенадцать сочетаний частот, передаваемых по телефонным линиям в виде обычных звуковых сигналов. Существуют стандартные схемные решения для распознавания этих частот, поэтому обработка тонового набора никаких затруднений не представляет.
С импульсным набором дело обстоит сложнее - каждая цифра кодируется серией разрывов в цепи между телефонным аппаратом и коммутирующим оборудованием на станции. Число разрывов в линии соответствует набранной цифре (ноль кодируется десятью разрывами); разрывы, относящиеся к одной и той же цифре, разделены короткими интервалами, более длинные интервалы разделяют разрывы, относящиеся к разным цифрам. Основная проблема состоит в том, что разрывы цепи не передаются дальше по линии, и на другом конце соединения прослушиваются только характерные щелчки. Эти щелчки приходится распознавать, что при наличии помех в линии сделать затруднительно.
Преобразование текст-речь. Любая компьютерно-телефонная система должна обладать способностью озвучить для абонента то или иное сообщение. Такое преобразование может выполняться в одном из двух режимов: путем сборки из заранее записанных речевых фрагментов и прямым формированием речевого сообщения по текстовому файлу. Сборка из заранее записанных речевых фрагментов позволяет решать только самые простые задачи, например синтез числительных. Достаточно записать речевые фрагменты, содержащие простейшие элементы, из которых состоят наименования чисел: цифры, десятки, сотни, тысячи и т.д. и из них можно будет набрать любое число. А поскольку работа многих информационных систем связана именно с передачей чисел, то такого синтеза будет вполне достаточно для работы очень многих приложений. Несмотря на внешнюю простоту такой системы, с ней связан целый ряд существенных проблем. Для того, чтобы синтезируемое сообщение звучало плавно, без разрывов, подставляемые слова должны быть интонационно встроены в общую фразу, достичь чего не так просто. В русском языке к этой проблеме добавляется еще проблема изменяемости слов - приходится для каждого контекста, где встречается числительное в определенном падеже, делать отдельную запись. Кроме того, в зависимости от числительного меняются и окружающие его слова, например: "триста тридцать один рубль", "триста тридцать три рубля", что еще больше осложняет ситуацию. Тем не менее, существуют стандартные методы подготовки речевых фрагментов для этого метода синтеза сообщений. Данный способ формирования речевых сообщений годится для подавляющего большинства голосовых систем.
Значительно более гибким, хотя и более сложным алгоритмически является прямой синтез речевых сообщений по тексту. Сегодня существуют алгоритмы синтеза речи по текстам на английском, немецком, испанском, японском и ряде других языков. Недавно появились сообщения о том, что разработана и система для русского языка, однако прямого подтверждения этому найти пока не удалось. Лидером в области разработки коммерческих систем текст-речь является сегодня компания Berkeley Speech Technologies (BeST). Основная проблема, до настоящего времени пока не имеющая полного решения, состоит в том, чтобы синтезированная по тексту речь звучала "по-человечески" - пока компьютерная речь практически не имеет интонаций и ударений, а кроме того, имеются трудности с озвучиванием имен собственных и адресов.
Распознавание голоса. Абонент может подавать команды машине не только набирая определенные комбинации цифр на своем телефонном аппарате, но и более обычным способом - проговаривая команды, что предполагает применение технологий распознавания речи. На сегодняшний день это, пожалуй, одна из самых сложных проблем в области интерфейса человека и компьютера. Несмотря на то, что недавно в этой области были достигнуты большие успехи, до полного решения еще далеко. Все алгоритмы распознавания работают на базе словарей, содержащих определенное количество слов; количество и характер слов для разных языков и режимов распознавания речи отличаются друг от друга. Алгоритмы распознавания речи занимаются выделением соответствующих слов в голосовом сигнале и преобразованием их в текст. Существует несколько режимов распознавания речи: с настройкой на голос конкретного пользователя и без настройки. В первом случае объем словаря может достигать нескольких десятков тысяч слов, которые распознаются при слитном произнесении. Данный режим распознавания применяется, когда у системы компьютерной телефонии имеется только один конкретный пользователь, который может по телефону давать команды системе и даже диктовать письма. Для систем общего пользования необходим режим распознавания без настройки на голос конкретного пользователя. Такие системы также работают на основе словаря, который, однако, может содержать гораздо меньшее число слов. Словари для распознавания речи без настройки на конкретного пользователя создаются на основе образцов речи, полученных от многих сотен или даже тысяч носителей языка.
Словари для работы без настройки на голос конкретного пользователя могут обеспечивать распознавание цифр от нуля до девяти и простейших команд типа "да" и "нет" при их раздельном произнесении, либо обеспечивать распознавание цифр и несколько более узкого набора команд при их слитном произнесении, либо обеспечивать распознавание цифр и наименований всех букв алфавита. Словари для распознавания речи без настройки на голос пользователя созданы для нескольких десятков языков и диалектов - для русского языка пока существует лишь простейший словарь, обеспечивающий распознавание цифр и простейших команд, произносимых раздельно.
Осуществление исходящего звонка. Системы компьютерной телефонии должны обеспечивать набор номера и мониторинг линии, который и представляет наибольший интерес. Речь идет о распознавании сигналов, свидетельствующих о состоянии соединения: редкие гудки - осуществление соединения; снятие трубки на противоположном конце; частые гудки - занятость линии; отсутствие гудков - соединение не установилось; гудки, обозначающие ошибку при наборе номера (как правило, это три последовательных гудка с возрастающей высотой тона). Кроме того, многие системы компьютерной телефонии в состоянии отличить, отвечает ли им человек, автоответчик или факсимильный аппарат. Для распознавания сигналов в линии и ответа абонента часто используется так называемая каденция - порядок чередования периодов молчания и наличия звука в линии и их продолжительность. Каденция распознается существенно проще, чем речь, хотя и здесь имеются свои проблемы, связанные с тем, что в разных странах состояние линии обозначается разными сигналами, поэтому системы компьютерной телефонии должны допускать настройку на сигналы, которые принято использовать в данной стране. Распознавание "сущности" отвечающего абонента осуществляется довольно просто. Факсимильный аппарат отвечает длинным сигналом готовности, который легко отличить по каденции от редких гудков и от человеческой речи. Человек, снимая трубку, коротко отвечает "Алло!" или в крайнем случае представляется. Автоответчик же начинает долго рассказывать, куда вы позвонили и что надо сделать, чтобы оставить сообщение.
Генерация факсимильных сообщений. Чтобы обеспечить полную поддержку всех необходимых человеку функций, система компьютерной телефонии должна уметь осуществлять генерацию факсимильных сообщений по текстовым файлам, результатам запросов баз данных и так далее. Данная функция мало чем отличается от работы обычного факс-модема.
Система коммутации входящих и исходящих звонков исторически являлась первой областью, откуда началась конвергенция компьютерных и телекоммуникационных технологий. Проще всего можно пояснить, о чем идет речь, на примере представленного выше на рисунке так называемого центра обслуживания телефонных вызовов (call center), который может представлять собой большую справочно-информационную систему, систему заказа билетов или бронирования мест в гостиницах. В любом случае речь идет о системе, где телефонные агенты обслуживают большой поток входящих звонков, и требуется оптимизировать время ожидания абонентов на линии. Система может организовывать очереди вызовов, сообщать абонентам как информацию о продвижении очереди, так и любую дополнительную информацию рекламного или развлекательного характера, производить перераспределение звонков по очередям по мере их продвижения.
Использование в системах с большим количеством входных номеров техники распознавания набранного номера, позволяет, во-первых, подключать к одной системе несколько разнородных групп агентов и производить коммутацию в соответствии с набранным номером, во-вторых, распознавать причину обращения по набранному номеру и сообщать агенту соответствующую информацию, и в-третьих, организовывать группы выделенных клиентов (скажем, категории frequent flyer в авиакомпаниях), обслуживаемых теми же агентами, но на других условиях. Системы автоматического определения номера в call center могут предоставлять агентам информацию о звонящем абоненте: от самой простой (откуда звонок) до сложной, связанной с поиском информации о постоянном клиенте по базе данных. В результате работы всех этой сложной техники агент получает на экране своего компьютера полную информацию о клиенте в момент соединения.
Call center - это пример коммутации вызовов в рамках организации. Компьютерная телефония обеспечивает также коммутацию входящего звонка на исходящую линию. Благодаря этой функции сотрудник может, например, переключать рабочий телефон на домашний или сотовый, избавляя клиента от необходимости разыскивать его по всем телефонам. Мало того, такое переключение может быть осуществлено дистанционно - сотрудник звонит в организацию, набирает нужный код, а затем вводит номер телефона, по которому его в данный момент можно найти. Система производит переключение звонка автоматически - клиент может даже не знать с какого телефона он на самом деле получает ответ.
Как видно, в системах компьютерной телефонии разнородные сообщения обрабатываются одинаковым образом. Сюда же можно интегрировать электронную почту, снабдить систему функцией немедленного ответа на сообщения - и получится то, что по-английски называется unified messaging, а по-русски именуется длинноватым словосочетанием "единая среда обмена сообщениями". Работая в такой среде, пользователь получает единый список пришедших на его имя электронных писем и факсимильных и голосовых сообщений. Ознакомившись с их содержанием, пользователь может немедленно решить, в какой форме следует отправлять ответ, и сразу же написать письменное сообщение или надиктовать в телефонную трубку голосовое сообщение. Компьютер может либо автоматически выбрать электронный адрес или номер телефона адресата из базы данных, либо предложить пользователю ввести необходимую информацию вручную. Системы unified messaging сейчас приобретают все большую популярность; они уже включены в состав ряда программных продуктов автоматизации офиса.