В развитых странах компьютерная телефония стала неотъемлемой частью офисной информационной системы. Ее преимущество перед другими видами связи между человеком и компьютером состоит в том, что в данном случае диалог с машиной ведется с использованием обычной человеческой речи. Проблемы как всегда являются продолжением достоинств: на сегодняшний день не существует надежного способа преобразования речи в поток символов и обратно, без чего обмен информацией между человеком и компьютером нельзя назвать полноценным.
Рынок компьютерной телефонии (как аппаратных средств, так и готовых приложений) растет весьма быстрыми темпами. В первую очередь это связано с ростом запросов конечных пользователей. На последней всемирной выставке телекоммуникационных технологий Telecom’95, проходившей осенью прошлого года в Женеве, компьютерной телефонии был предоставлен отдельный павильон, в котором демонстрировали свою продукцию несколько десятков компаний. Существуют специальные научно-технические журналы, посвященные проблемам компьютерной телефонии (например, Computer Telephony и Voice+).
АППАРАТНАЯ БАЗА
Существенному прогрессу в области компьютерной телефонии способствовало широкое распространение технологии цифровой обработки сигналов (DSP - Digital Signal Processing). Микросхемы DSP являются специализированными процессорами для обработки и сжатия голосового сигнала. Это позволяет разгрузить центральный процессор от несвойственных ему функций, в результате простейшие системы компьютерной телефонии могут работать даже на компьютерах i286. В мощных компьютерно-телефонных платах расширения используется несколько процессоров. Это могут быть несколько DSP-процессоров, выполняющих разные функции или просто делящих между собой интенсивный поток входных данных, либо DSP-процессор для обработки голосового сигнала и обычный процессор, который управляет обменом данными между платой расширения и центральным процессором.
В последние годы аппаратные средства DSP стали доступнее: появилось множество разнообразных изделий, отличающихся как по мощности, так и по цене. Большая гибкость процессорной архитектуры по сравнению со специализированными схемными решениями (при использовании процессора функции устройства могут довольно существенно изменяться в зависимости от того, какое микропрограммное ПО работает с данным процессором) обусловила разнообразие изделий компьютерной телефонии на рынке.
Во-первых, имеется довольно большое число относительно дешевых (несколько сотен долларов) одноканальных голосовых плат, обычно позволяющих производить следующие операции: набор номера, иногда мониторинг линии (call progress analysis), озвучивание голосового сообщения, распознавание набранных цифр DTMF. Подобные платы выпускаются, например, компаниями American Megatrends (Норкросс, шт. Джорджия), Best Data Products (Чатсворт, шт. Калифорния), Boca Research (Бока-Рейтон, шт. Флорида), Objix Multimedia (Уолтем, шт. Массачусетс). Вместе с платами продается специализированное ПО, как правило, голосовая почта, реже в приложении присутствуют базовые элементы простейших систем unified messaging (единая среда для обработки сообщений). Поскольку ПО, поставляемое с платами, является специализированным и закрытым, пользователь чаще всего лишен возможности конфигурировать систему в соответствии со своими нуждами. Такое отсутствие гибкости наряду с низкой пропускной способностью данных плат является их основным недостатком. Кроме того, платы низшего класса (low-end) могут работать только с сигналами DTMF, что резко снижает их полезность для российского потребителя, поскольку в нашей стране принята система пульсового набора номера.
Системы старшего класса (high-end) содержат гораздо более широкий ассортимент плат расширения, из которых, как из детского конструктора, можно собирать аппаратную базу необходимых приложений. Производители аппаратных средств, как правило, снабжают свои продукты стандартными драйверами для всех основных операционных систем. Это позволяет пользователю самостоятельно разрабатывать прикладные системы, полностью отвечающие его потребностям (или заказывать их у сторонней компании). Основными производителями таких систем являются компании Brooktrout (Нидэм, шт. Массачусетс), Dialogic (Парсиппани, шт. Нью-Джерси), Natural MicroSystems (Нэтик, шт. Массачусетс), Pika (Канада, Онтарио), Rhetorex (Кэмпбелл, шт. Калифорния). Бесспорным лидером рынка здесь является Dialogic. По данным журнала PC Magazine, в 1995 году она контролировала до 70% рынка аппаратных средств компьютерной телефонии. Многие решения этой компании, опубликованные как открытые платформы, стали стандартом де-факто для всей отрасли как в области аппаратуры, так и в области программного обеспечения. Существует даже термин "Dialogic-совместимая продукция" - что-то вроде IBM-совместимых ПК.
МОДУЛЬНЫЕ СИСТЕМЫ
Рассмотрим кратко аппаратные "кубики" для построения системы компьютерной телефонии. В первую очередь это многоканальные (от 2 до 30 каналов) голосовые платы на основе DSP. Использование специализированных процессоров превращает данные платы в мощные устройства для обработки голосового сигнала: оцифровки, сжатия (кодировки), воспроизведения. Помимо этого голосовые платы, как правило, выполняют ряд функций, необходимых для обеспечения соединения: набор номера, мониторинг линии, воспроизведение голосовых сообщений, распознавание сигналов DTMF - все функции, которые мы уже упоминали, говоря о продуктах низшего класса. Отличие состоит, во-первых, в том, что одна плата обслуживает несколько каналов, а во-вторых, что любая голосовая плата снабжена специальным интерфейсом компьютерно-телефонной шины (по ней может происходить обмен информацией с другими компонентами системы). K аналоговым телефонным линиям голосовые платы можно подключать напрямую, а работа с цифровыми магистралями (например, E-1) требует использования специальных согласующих плат, передающих сигнал на голосовые платы по компьютерно-телефонной шине.
Кроме голосовых плат в "конструктор" входят также платы факсимильной связи, коммутации и организации конференций, распознавания голоса, преобразования сигналов импульсного набора в DTMF и платы-преобразователи текст - речь. Комбинируя эти платы с голосовыми, можно строить аппаратные конфигурации для конкретных приложений. При построении аппаратных комплексов для компьютерной телефонии возникает проблема обеспечения обмена данными между платами.
Дело тут в следующем. Оцифровка голосового сигнала в промышленности производится с частотой 8000 Гц. Разрешение аналого-цифрового преобразования при этом составляет 256 дискретов, т. е. для кодирования результата одного преобразования требуется 8 бит. Отсюда получается, что для передачи одного голосового канала требуется 64 Кбит/с. Если учесть, что голосовых каналов в одной системе может быть несколько десятков, то становится ясно, что использовать системную шину для обмена информацией между платами невозможно.
Выходом из положения является применение специализированной компьютерно-телефонной шины. Конструктивно она выглядит как шлейфовый кабель, соединяющий платы между собой. Шина может быть либо аналоговой, либо цифровой. Аналоговая шина представляет собой несколько параллельных аналоговых линий (до четырех линий), ее пропускной способности хватает только на самые простые системы. Большей пропускной способностью обладают цифровые шины PEB, разработанные Dialogic, и MVIP, предложенные фирмой Natural MicroSystems. Идеологически эти шины можно представлять себе как совокупность нескольких линий T-1 (E-1) (четырех - для PEB и восьми - для MVIP). Тем самым шина PEB может предоставить до 128 независимых каналов, а MVIP - до 256 каналов. Как и PEB, MVIP является стандартом де-факто: данную шину поддерживают около 30 производителей. Следующим шагом на этом пути стала шина SCbus, представляющая собой часть разработанного Dialogic стандарта SCSA (Signal Computing System
Architecture). Помимо существенного увеличения пропускной способности (она составляет 2048 каналов) она поддерживает объединение нескольких голосовых каналов в один более скоростной логический канал для передачи больших объемов информации. Кроме того, шина SCbus может управляться любым устройством, подключенным к шине. Данное свойство повышает отказоустойчивость шины: в случае частичного выхода из строя устройства, которое в данный момент управляет работой шины, его функции могут быть переданы другому устройству. Очень важным свойством SCbus, отличающим ее от других стандартов, является поддержка передачи информации между компьютерами, что позволяет организовывать многомашинные комплексы компьютерной телефонии.
КАК ВДОХНУТЬ ЖИЗНЬ В "МЕРТВОЕ ЖЕЛЕЗО"
Гибкая аппаратная база предполагает наличие гибкой системы разработки приложений. Компания Microsoft совместно с Intel предложила стандарт на систему разработки приложений под Windows под названием Telephony Applications Programming Interface (TAPI). Эта система следует общей идеологии программирования под Windows: имеется набор аппаратно-независимых интерфейсов между приложениями и ядром системы (этот набор используется разработчиками приложений) и набор интерфейсов между периферийными устройствами и ядром системы (данные интерфейсы предоставляются производителями устройств).
В TAPI весь "интеллект" компьютерной телефонии сосредоточен в компьютере пользователя (чаще всего это рабочая станция офисной сети). Сюда передается вся информация о звонке от PBX (например, номер, с которого звонит абонент), здесь эта информация обрабатывается. Компании Novell и AT&T предложили систему под названием Telephony Services API (TSAPI), где обработка звонков производится на сервере сети, а на рабочие станции сотрудников выдается полученная при помощи сервера информация об этом звонке. Различия в этих подходах проявляются, в частности, в том, что они удобны для разных типов приложений; об этом мы в свое время еще вспомним.
На рынке имеется много десятков пакетов разработки приложений для компьютерной телефонии. Их можно разделить на две большие группы: генераторы приложений на базе GUI (graphical user interface - графический интерфейс пользователя) и программы разработки приложений на базе сценариев. Примером генераторов приложений на базе GUI могут служить пакеты Cascade (Cascade Technologies, Нью-Йорк), Visual Voice (Stylus Innovation, Кеймбридж, шт. Массачусетс) и ProVIDE (Telephone Response Technologies, Розевиль, шт. Калифорния). Сценарии приложений можно разрабатывать, например, при помощи пакетов VOS (Parity Software, Сан-Франциско, шт. Калифорния), V-Script (Enhanced Systems, Норкросс, шт. Калифорния) и EASE (Expert Systems, Атланта, шт. Джорджия). В первом случае от разработчика не требуется программистских навыков - приложения набираются из стандартных элементов, часто на интуитивном уровне. После построения блок-схемы приложения на экране в графическом режиме программа-генератор автоматически преобразует полученную блок-схему в прикладную программу. Ценой простоты работы с такими генераторами приложений является недостаток гибкости, а также то обстоятельство, что эти программы часто поддерживают не все функции аппаратуры.
Существенно более мощным средством разработки приложений являются системы программирования сценариев. Сценарий приложения напоминает программу на языке высокого уровня, в которой имеются обращения к библиотечным подпрограммам, выполняющим специфически компьютерно-телефонные действия, например "снятие трубки", набор номера и т. д. Сочетая обращения к этим функциям с простыми логическими операторами, можно при наличии определенного опыта программирования довольно легко получать сложные программы для управления системами компьютерной телефонии.
Помимо использования специальных программ разработки приложений можно программировать на каком-нибудь языке высокого уровня, вставляя в текст вызовы функций, управляющих работой аппаратуры на более низком уровне, чем в программах подготовки сценария. На этом пути можно достичь максимальной универсальности, гибкости и эффективности использования ресурсов, однако здесь требуется серьезная программистская квалификация.
ЗАЧЕМ ЭТО ВСЕ НУЖНО?
Приложения компьютерной телефонии при всем их огромном многообразии могут быть разделены на три концептуально различные области: центр обслуживания телефонных вызовов (call center), единая среда обработки сообщений (unified messaging) и интерактивный голосовой ответ на запросы (interactive voice response, IVR).
"Патриархи" области приложений компьютерной телефонии - центры телефонного обслуживания. Схема их работы такова: имеется определенное число телефонных агентов, которые отвечают на звонки клиентов. Конкретная тема этих звонков может быть любой: бронирование билетов, заказ мест в гостинице, справочная система, заказ товаров по телефону и тому подобное. Существенно то, что в данной системе абонент общается с живым человеком-агентом, который выполняет все необходимые действия в зависимости от запроса клиента. Задача тоже проста: надо добиться, чтобы до системы было легко дозвониться, чтобы клиенту не приходилось подолгу стоять в очереди на обслуживание и чтобы при этом число агентов было минимальным. В этой ситуации компьютерная телефония может провести начальный опрос клиента и направить его к соответствующей группе агентов, при необходимости (определив номер звонящего с помощью АОН) найти в базе данных карточку клиента и поставить его в самую короткую из имеющихся очередей. Кроме того, система может давать заранее записанные ответы на стандартные, наиболее часто встречающиеся вопросы клиента, не соединяя позвонившего с агентом. Это самая простая схема работы. На деле, конечно, все может быть существенно сложнее, но главной задачей системы остается оптимальное распределение интенсивного потока входных звонков среди обслуживающих их агентов. Основная работа здесь производится при входе в систему, поэтому для таких приложений удобнее использовать систему TSAPI.
Концепция единой среды обработки сообщений возникла из слияния голосовой и электронной почты и факсимильной связи. Основная идея состоит в обработке всех этих сообщений при помощи одного ПО. Пользователь получает всю поступающую к нему информацию в одинаковом виде. На экране высвечивается единый список поступивших на имя пользователя сообщений с указанием того, в какой форме пришло сообщение: факс, голос или электронное письмо. Не выходя из программы, пользователь может ознакомиться с содержанием сообщения (просмотреть на экране или прослушать), решить, в какой форме следует отвечать, тут же подготовить ответ (набрать на клавиатуре текст или продиктовать речевое сообщение) и отправить его, выбрав необходимый номер телефона или электронный адрес из высвечиваемого на экране списка. Новые перспективы этой технологии откроются с усовершенствованием преобразования речь - текст и текст - речь, однако и в настоящее время ее использование весьма удобно, и даже в самых простых системах на базе одноканальных плат часто поддерживаются какие-то базовые функции подобных систем. Если говорить о системах более высокого уровня, то тут, как легко видеть, основная работа производится на рабочей станции пользователя, поэтому данные системы лучше поддаются реализации в стандарте TAPI.
Системы интерактивного голосового ответа на запросы по структуре напоминают центры обслуживания телефонных звонков. Принципиальная разница состоит в том, что здесь клиенты получают доступ к компьютерным ресурсам организации без участия оператора. Простейший пример: выяснение суммы остатка на банковском счету. Человек звонит, набирает все необходимые пароли, после чего система компьютерной телефонии посылает соответствующий запрос на сервер базы данных, получает ответ и озвучивает его абоненту. Фактически в данном случае мы имеем дело с принципиально новым способом удаленного доступа к данным. Это главное отличие систем IVR от центров телефонного обслуживания. Например, при торговле по каталогу клиенту системы достаточно ввести с телефона номер необходимого товара и свой идентификационный номер. Система автоматически обратится к базе данных, где хранится информация о товарах, сформирует заказ и вышлет клиенту счет или снимет необходимую сумму с его счета в банке. Возможности данных систем существенно расширяются при интеграции в нее средств факсимильной связи, благодаря им абонент может получать от удаленных баз данных более обширную информацию (прейскуранты, технические описания и многое другое).
ЧТО БУДЕТ ЗАВТРА?
Влияние компьютерной телефонии на всемирную информационную среду иногда сравнивают с воздействием Internet. Справедливости ради надо сказать, что это пока не вполне так. Основным препятствием на пути к повсеместному и всепроникающему использованию этой технологии является, помимо проблем с распознаванием голоса, определенный разнобой в телекоммуникационных стандартах разных стран. Нет, однако, сомнений в том, что эти проблемы удастся преодолеть (одни раньше, другие позже), и тогда нас ждут невиданные изменения в информационной картине мира: как в обмене информацией между людьми, так и в доступе к удаленным базам данных.
Имеется довольно большое число относительно дешевых (несколько сотен долларов) одноканальных голосовых плат. Они выпускаются, например, компаниями American Megatrends (Норкросс, шт. Джорджия), Best Data Products (Чатсворт, шт. Калифорния), Boca Research (Бока-Рейтон, шт. Флорида), Objix Multimedia (Уолтем, шт. Массачусетс). Системы старшего класса содержат гораздо более широкий ассортимент плат расширения.
Основными производителями таких систем являются компании Brooktrout (Нидэм, шт. Массачусетс), Dialogic (Парсиппани, шт. Нью-Джерси), Natural MicroSystems (Нэтик, шт. Массачусетс), Pika (Канада, Онтарио), Rhetorex (Кэмпбелл, шт. Калифорния).
Александр КРЕЙНЕС
Имеется довольно большое число относительно дешевых (несколько сотен долларов) одноканальных голосовых плат. Они выпускаются, например, компаниями American Megatrends (Норкросс, шт. Джорджия), Best Data Products (Чатсворт, шт. Калифорния), Boca Research (Бока-Рейтон, шт. Флорида), Objix Multimedia (Уолтем, шт. Массачусетс). Системы старшего класса содержат гораздо более широкий ассортимент плат расширения.
Основными производителями таких систем являются компании Brooktrout (Нидэм, шт. Массачусетс), Dialogic (Парсиппани, шт. Нью-Джерси), Natural MicroSystems (Нэтик, шт. Массачусетс), Pika (Канада, Онтарио), Rhetorex (Кэмпбелл, шт. Калифорния).
СХЕМА ОБМЕНА ДАННЫМИ В СТАНДАРТЕ TAPI, ОПРЕДЕЛЯЮЩЕМ ПРОГРАММИРОВАНИЕ ПРИЛОЖЕНИЙ КОМПЬЮТЕРНОЙ ТЕЛЕФОНИИ В СРЕДЕ WINDOWS
Термины компьютерной телефонии
AEB (Analog expansion bus) - аналоговое электрическое соединение между различными платами компьютерной телефонии (как правило,
между интерфейсными и функциональными платами), установленными в одном шасси.
Call progress analysis (мониторинг линии) - автоматическое распознавание результатов телефонного вызова (достигнуто соединение, получен ответ абонента, линия занята, сигналы на линии отсутствуют). K этому понятию часто относят также распознавание окончания разговора (hangup detection).
CTI (Computer-telephone integration - компьютерно-телефонная интеграция) - управление телефонным коммутатором при помощи подключенного к нему компьютера (рабочей станции или файлового сервера). Компьютер выдает команды на коммутатор, осуществляя переключение звонков.
DSP (Digital Signal Processor) - специализированный процессор, осуществляющий быстрые операции с цифровыми сигналами.
DTMF dialing (Dual Tone Multifrequency, синоним: Touch-Tone dialing; тоновый набор) - способ набора номера, при котором каждой цифре на наборной клавиатуре соответствует пара звуковых сигналов высокой и низкой частоты. Принят в США, Израиле и ряде других стран.
MVIP (Multi-Vendor Integration Protocol) - цифровая шина обмена информацией между различными компонентами системы компьютерной телефонии, предложенная компаний Natural MicroSystems, общая пропускная способность 256 голосовых каналов.
PEB (PCM Expansion Bus) - шина для электрического соединения и передачи цифровых сигналов между компонентами системы компьютерной телефонии, установленными в одном шасси. При передаче по шине информация кодируется на основе метода PCM (Pulse code modulation). Разработана компанией Dialogic в качестве открытой платформы.
Pulse dialing (пульсовый набор) - способ набора номера, при котором набираемые цифры преобразуются в последовательность электрических импульсов (разрывов цепи). Принят в большинстве европейских стран, в частности в России, а также в Японии.
Pulse-tone conversion (преобразование пульс - тон) - преобразование "щелчков" в линии, соответствующих импульсам набора номера, в сигналы DTMF. Применяется для согласования систем компьютерной телефонии, рассчитанных на DTMF, с телефонными сетями с пульсовым набором.
SCSA (Signal Computing System Architecture) - многоуровневый открытый стандарт для систем компьютерной телефонии, основными компонентами которого являются цифровая шина обмена информацией между компонентами системы SCbus (пропускная способность до 2048 голосовых каналов ) и программный интерфейс приложений. Разработан компанией Dialogic.
TAPI (Telephone Application Programming Interface) - стандарт разработки приложений компьютерной телефонии в локальных сетях, в котором обработка телефонного вызова происходит в рамках ПК пользователя. Предложен компаниями Microsoft и Intel.
Text-to-speech conversion (TTS - преобразование текст - речь) - технология преобразования потока символов кода ASCII в человеческую речь на аппаратном уровне. Используется в системах выдачи информации по требованию.
TSAPI (Telephony Server Application Programming Interface) - стандарт разработки приложений компьютерной телефонии в локальных сетях, в котором обработка телефонного вызова сосредоточена на сетевом сервере. Рабочие станции выдают на сервер команды и получают от него обработанную информацию. Предложен Novell при участии AT&T.
Voice card (голосовая плата) - плата расширения для компьютера, позволяющая обрабатывать голосовые сигналы. Как правило, голосовые карты обеспечивают следующий минимальный набор функций: инициализирование телефонного вызова, распознавание окончания разговора, набор номера (DTMF и пульсовый) и распознавание сигналов DTMF.
Voice recognition (распознавание голоса) - технология, благодаря которой компьютер может распознавать речь человека. Как правило, словари распознаваемых слов систем распознавания речи содержат около 15 основных команд, таких, как "да", "нет" и числительные.
Концепция единой среды обработки сообщений возникла из слияния голосовой и электронной почты и факсимильной связи. Основная идея состоит в обработке всех этих сообщений при помощи одного ПО. Пользователь получает всю поступающую к нему информацию в одинаковом виде. На экране высвечивается единый список поступивших на имя пользователя сообщений с указанием того, в какой форме сообщение пришло: факс, голосовое сообщение, или электронное письмо. Не выходя из программы, пользователь может ознакомиться с содержанием сообщения, подготовить и отправить ответ. Новые перспективы этой технологии откроются с усовершенствованием преобразования речь -текст и текст -речь.
Как работает система компьютерной телефонии
Работа систем компьютерной телефонии, как правило, основана на использовании систем голосовых меню. Компьютер обращается к человеку, озвучивая сообщения, заранее записанные или синтезируемые "на ходу" из подготовленных речевых фрагментов. Сообщение содержит набор опций, предоставляемых в данный момент человеку, и указание, какие действия надо произвести для выбора той или иной опции. Выбор опции производится либо набором определенной цифры или комбинации цифр на телефонном аппарате, либо голосом. В последнем случае используется технология распознавания речи. Если в телефонном аппарате абонента применяется пульсовый набор, то для распознавания набранной цифры следует произвести преобразование пульс - тон. Если по ходу дела абонента следует ознакомить с информацией, полученной из базы данных, для этого применяется либо факсимильная связь, либо преобразование текст - речь, либо (в простых случаях, например при озвучивании числительных) "сборка" сообщения из заранее записанных речевых фрагментов. На аппаратном уровне системы компьютерной телефонии, как правило, представляют собой плату расширения для компьютера (или группу таких плат). При использовании нескольких плат в одной системе обмен данными между ними производится по отдельной компьютерно-телефонной шине или по аналоговой линии без обращения к системной шине компьютера.
БЛОК-СХЕМА ГОЛОСОВОЙ ПЛАТЫ НА БАЗЕ DSP
ФРАГМЕНТ ПРИКЛАДНОЙ ПРОГРАММЫ КОМПЬЮТЕРНОЙ ТЕЛЕФОНИИ НА ЯЗЫКЕ ПОДГОТОВКИ СЦЕНАРИЕВ VOS (PARITY SOFTWARE)
func ansline(line)
dec
const RING = 21
enddec
sc_watch(line, "r");
do
until(sc_wait(line) eq RING);
sc_offhook(line);
endfunc
В данном фрагменте реализовано ожидание звонка по линии line и снятие трубки. Константа RING определяет код события соответствующего звонка; функция sc_watch определяет события в линии, которые распознаются системой (в данном случае это замыкание звонковой цепи). Функция sc_wait выдает код события, произошедшего в линии; ожидание события RING производится в бесконечном цикле do ... until. Функция sc_offhook обеспечивает ответ на звонок.