Способы и устройство для осуществления распределенных многомодальных приложений

Иллюстрации

Показать все

Изобретение относится к средствам для синхронизации данных между визуальным и голосовым представлениями, связанными с распределенными многомодальными приложениями. Технический результат заключается в уменьшении времени нахождения нужного контента. Клиентское устройство визуализирует отображение, которое включает в себя по меньшей мере один многомодальный элемент отображения, для которого данные ввода являются принимаемыми посредством визуальной модальности и голосовой модальности. Когда клиент обнаруживает через голосовую модальность фрагмент речи пользователя, клиент посылает аудиоданные восходящей линии связи, представляющие фрагмент речи, модулю распознавания речи. Сервер приложения принимает результат распознавания речи, сформированный модулем распознавания речи, и посылает ответ на запрос голосового события клиенту. Ответ на запрос голосового события посылается в качестве ответа на асинхронный HTTP-запрос голосового события, посланный ранее клиентом серверу приложения. Затем клиент может послать другой запрос голосового события серверу приложения в ответ на прием ответа на запрос голосового события. 3 н. и 18 з.п. ф-лы, 6 ил.

Реферат

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

Изобретение в общем относится к распределенным приложениям и более конкретно к распределенным многомодальным приложениям, осуществленным в среде системы клиент-сервер.

ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ

«Модальность» интерфейса пользователя может быть определена как режим взаимодействия между пользователем и электронным устройством, где взаимодействие осуществляется посредством интерфейса пользователя этого устройства. Модальность интерфейса пользователя может быть осуществлена посредством комбинации аппаратного и программного обеспечения с конкретным типом информации, воспринимаемой человеком (например, информации, воспринимаемой посредством зрения, звука или прикосновения), и/или информации, сформированной человеком (например, информации, сформированной посредством речи или другого физического действия). Например, одним типом модальности интерфейса пользователя является «визуальная модальность», которая может быть осуществлена посредством экрана дисплея и связанного с ним аппаратного и программного обеспечения для формирования визуального отображения на экране дисплея. Визуальная модальность так же может быть осуществлена, используя различные устройства ввода, которые обеспечивают взаимодействия пользователя с визуальным отображением, такие как устройства ввода, которые дают пользователю возможность выбирать информацию, которая визуализируется на визуальном отображении (например, использование механизма прокрутки, сенсорного экрана или кнопок перемещения курсора) для того, чтобы вводить информацию в поля визуального отображения (например, используя цифровую клавиатуру), и/или для того, чтобы изменять фокус визуального отображения от одного поля к другому. Другим типом модальности интерфейса пользователя является «голосовая модальность», которая может быть осуществлена, используя микрофон, громкоговоритель и связанное с ними аппаратное и программное обеспечение, выполненное с возможностью принимать и оцифровывать речь человека, и/или для того, чтобы выводить аудиоинформацию (например, аудиоподсказки или другую аудиоинформацию). Другие типы модальностей интерфейса пользователя включают в себя, например, чтобы назвать всего лишь две, жестикуляционные модальности и перьевые модальности.

В интересах предоставления улучшенной практичности в сравнении с устройствами «одной модальности» электронные устройства могут включать в себя «многомодальный» интерфейс пользователя, который является интерфейсом пользователя, который предоставляет более одной модальности интерфейса пользователя. Например, электронное устройство может предоставлять как визуальную модальность, так и голосовую модальность. Такое устройство может, например, одновременно выдавать визуальную информацию (например, отображаемую информацию) и связанную с ней аудиоинформацию (например, аудиоподсказки), и/или устройство может предоставлять пользователю, по желанию пользователя, возможность вводить информацию посредством речи, цифровой клавиатуры или совместно. В основном, устройство, имеющее многомодальный интерфейс пользователя, обеспечивает улучшенное впечатление пользователя, так как пользователь может выбирать модальность, с помощью которой он или она будет взаимодействовать с устройством. Взаимодействие, используя голосовую модальность, может быть предпочтительным, например, в ситуации, в которой пользователь выбирает взаимодействие со свободными руками, такое как в случае, когда печатание на клавиатуре является слишком трудоемким и/или когда пользователь ослаблен либо постоянно (например, из-за артрита или некоторой другой физической неспособности), либо ситуационно (например, когда пользователь в перчатках и/или когда руки пользователя заняты другими задачами). В противоположность, взаимодействие, используя визуальную модальность, может быть предпочтительным, например, в ситуации, в которой комплексная информация должна быть визуализирована, в случае, когда требуется звуковая конфиденциальность, когда существуют ограничения по шуму и/или когда существуют слуховые ограничения либо постоянные (например, когда у пользователя сложный акцент, недостатки речи и/или ослабленный слух), либо ситуационные (например, когда присутствует значительный фоновый шум или ограничения по шуму).

Многомодальный интерфейс пользователя может быть осуществлен совместно с приложением, которое работает в сетевой среде (например, в среде системы клиент-сервер). В таком случае пользователь взаимодействует с многомодальным интерфейсом пользователя на клиентском устройстве (например, сотовом телефоне или компьютере), а клиентское устройство обменивается информацией с одним или более другими устройствами или платформами (например, сервером) через сеть. В такой сетевой среде были осуществлены две основные технологии для того, чтобы создать элементы системы клиент-сервер, которые поддерживают многомодальный интерфейс пользователя и, более конкретно, элементы системы, которые поддерживают интерфейс пользователя, выполненный с возможностью предоставлять, по меньшей мере, визуальную и голосовую модальность. При использовании «встроенной» технологии, главным образом, все необходимое аппаратное и программное обеспечение, связанное с разнообразными модальностями, включено в само клиентское устройство. Например, клиентское устройство может включать в себя программное и аппаратное обеспечение, выполненные с возможностью выполнять задачи, относящиеся к аудио, такие как обработка речи, распознавание речи и/или синтез речи, среди прочих вещей. В основном, такие задачи, относящиеся к аудио, неизбежно влекут за собой использование специализированных процессоров или механизмов обработки (например, процессоров цифровой обработки сигнала) и существенный объем памяти (например, для хранения таблиц и программного обеспечения, связанного с задачами, относящимися к аудио). Используя «распределенную» технологию, часть обработки, связанной с одной или более модальностями, может быть перенаправлена другому элементу обработки, как например удаленному серверу. Например, когда пользователь говорит, аудиоданные могут отсылаться от клиентского устройства удаленному серверу, а удаленный сервер может выполнять некоторые или все из относящихся к аудио задач и возвращать данные, сообщения об ошибках и/или результаты обработки клиентскому устройству.

Каждая технология имеет свои преимущества и недостатки. Например, преимуществом некоторых традиционных распределенных технологий является то, что некоторые вычислительно напряженные процессы, связанные с многомодальным интерфейсом пользователя (например, задачи, относящиеся к аудио), могут быть выведены за пределы клиентского устройства на другой элемент обработки (например, удаленный сервер), как уже упоминалось. Соответственно, клиентское устройство может не включать в себя специализированные процессоры или механизмы обработки (например, процессоры цифровой обработки сигнала) и дополнительную память для осуществления задач, которые перенаправлены с клиентского устройства. Это означает, что клиентское устройство может быть выполнено более рентабельным образом (например, устройство может быть выполнено в качестве «тонкого» клиента), в сравнении с клиентскими устройствами, которые реализуют встроенные технологии.

Тем не менее, используя традиционные распределенные технологии, состояния различных модальностей должны быть синхронизированы между клиентом и сервером. Согласованной синхронизации между состояниями разнообразных модальностей трудно добиться через сеть. Осуществление многомодального интерфейса пользователя, использующего традиционные распределенные технологии, как правило, выполняется, используя нестандартные протоколы, измененные визуальные и речевые языки разметки приложения и нетрадиционные технологии авторинга (формирования в соответствии с определенным стандартом) контента. Соответственно, такие технологии неохотно принимаются разработчиками приложения.

Что требуется, так это способы многомодального интерфейса пользователя и устройство, которые могут способствовать разработкам тонкого клиента и использованию стандартных протоколов и традиционных технологий авторинга контента. Другие особенности и признаки изобретения станут явными из последующего подробного описания и прилагаемой формулы изобретения, совместно с сопроводительными чертежами и этими предпосылками создания изобретения.

ПЕРЕЧЕНЬ ФИГУР ЧЕРТЕЖЕЙ

Изобретение будет здесь и далее описано совместно со следующими фигурами чертежей, при этом подобные цифровые обозначения указывают подобные элементы, и

Фиг. 1 является упрощенной схемой системы, выполненной с возможностью осуществления распределенных многомодальных приложений, в соответствии с примером варианта осуществления;

Фиг. 2 является логической блок-схемой способа инициирования и проведения сеанса многомодального приложения в соответствии с примером варианта осуществления;

Фиг. 3 является логической блок-схемой способа выполнения синхронизации сеанса многомодального приложения в соответствии с примером варианта осуществления;

Фиг. 4 является примером многомодальной страницы, визуализированной на клиентском устройстве, в соответствии с примером варианта осуществления;

Фиг. 5 является логической блок-схемой способа выполнения процесса обработки события ввода голосовой модальности в соответствии с примером варианта осуществления; и

Фиг.6 является логической блок-схемой способа выполнения процесса обработки события ввода визуальной модальности в соответствии с примером варианта осуществления.

ПОДРОБНОЕ ОПИСАНИЕ

Варианты осуществления включают в себя способы и устройство для осуществления распределенных многомодальных приложений. Эти варианты осуществления могут обеспечить использование стандартных протоколов и традиционных технологий авторинга контента. В добавление, эти варианты осуществления могут быть использованы совместно с устройствами типов «тонкого клиента».

Использованный здесь термин «многомодальный» означает выполненный с возможностью осуществить разнообразные модальности интерфейса пользователя. Термины «распределенное многомодальное приложение», «многомодальное приложение» и «распределенное приложение» могут использоваться взаимозаменяемо для того, чтобы означать приложение программного обеспечения, которое предоставляет многомодальный интерфейс пользователя на клиентском устройстве (например, клиентском устройстве 102, Фиг. 1) и которое включает в себя отдельные компоненты, которые исполняются в раздельных средах исполнения на различных платформах (например, клиентское устройство 102, сервер приложения 104 и/или голосовой сервер 106, Фиг.1).

В варианте осуществления распределенные многомодальные приложения выполнены с возможностью выполняться на системах, имеющих архитектуру систем клиент-сервер (например, система 100, Фиг. 1). Используемые здесь термины «клиент» или «клиентское устройство» могут использоваться взаимозаменяемо для того, чтобы означать объект обработки, электронное устройство или приложение, которое выполнено с возможностью выполнять программное обеспечение, связанное с распределенным многомодальным приложением. В добавление, клиентское устройство выполнено с возможностью получать доступ, через сеть, к одной или более услугам, которые связаны с распределенным многомодальным приложением и которые предоставляются одним или более удаленным серверами.

Термин «сервер» означает обрабатывающий объект, электронное устройство или приложение, которое выполняет услуги для одного или более подсоединенных через сеть клиентов или других серверов в ответ на выданные клиентом или выданные сервером запросы. Термин «сервер приложения» или «AS» означает сервер, выполненный с возможностью инициировать установление соединений управления или данных, связанных с сеансом распределенного многомодального приложения, а также управлять синхронизацией между различными «представлениями», связанными с сеансом приложения. Термин «сервер модальности» означает сервер, приспособленный для браузера, который связан с одной или более модальностями интерфейса пользователя. Термины «голосовой сервер» и «VS» означают сервер модальности, который конкретно выполнен с возможностью исполнять браузер, связанный с голосовой модальностью. Несмотря на то, что описание ниже включает в себя подробные описания систем, в которых голосовой сервер включен для того, чтобы поддерживать голосовую модальность, должно быть понятно, что другие типы серверов модальности, которые поддерживают другие типы модальностей интерфейса пользователя, в добавление или в качестве альтернативы, могут быть включены в систему в других вариантах осуществления (например, жестикуляционная модальность, перьевая модальность и т.д.)

Конкретный пример распределенного многомодального приложения будет использован на протяжении этого описания для того, чтобы способствовать пониманию примера варианта осуществления. Должно быть понятно, что пояснительный пример не должен восприниматься в качестве ограничивающего объем вариантов осуществления только до этого примера. В примере варианта осуществления, распределенное многомодальное приложение выполнено с возможностью поддерживать визуальную модальность и голосовую модальность. Клиентское устройство включает в себя браузер с «возможностью многомодального режима», который выполнен с возможностью интерпретировать машинный код, который предписывает клиентскому устройству визуализировать визуальное отображение, которое включает в себя, по меньшей мере, один элемент отображения, для которого входные данные являются принимаемыми клиентским устройством посредством визуальной модальности и голосовой модальности. В варианте осуществления машинный код включен внутрь и/или на него имеется ссылка со стороны многомодальной страницы, которая, когда интерпретируется, предписывает клиентскому устройству визуализировать разнообразные элементы отображения, взаимодействующие с пользователем (например, поля ввода данных для города, штата, номера улицы и названия улицы).

Используемый здесь термин «интерпретировать» означает интерпретировать и/или исполнять в качестве терминов, понимаемых специалистами в соответствующей области техники. Используемый здесь, термин «машинный код» означает разметку (например, разметку, набранную в стандартном языке обобщенной разметки (SGML), расширяемом языке разметки (XML), языке гипертекстовой разметки (HTML), расширяемом HTML (XHTML), динамическом HTML (DHTML), VoiceXML, тэгами языка речевого приложения (SALT), XHTML+Голос (X+V), масштабируемой векторной графикой (SVG) и/или различными другими языками разметки), сценарии (скрипты) (например, код JavaScript), скомпилированный код (например, скомпилированный C/C++, Java, Lisp, Fortran, Pascal и т.д.) и/или другую информацию, которая может быть легко исполнена или интерпретирована компьютерным процессором (например, клиентским устройством 102, сервером приложения 104 и/или голосовым сервером 106, Фиг. 1).

Снова ссылаясь на пример рассматриваемого здесь многомодального приложения, пользователь клиентского устройства может вводить информацию для элемента отображения, на котором в данный момент «сфокусировано» приложение (например, элемент, который выбран или на котором моргает курсор) и/или может изменять фокус (например, посредством ввода информации для элемента отображения и/или выбора другого элемента отображения). В варианте осуществления, пользователь может вводить информацию для многомодального элемента отображения, используя как визуальную модальность, так и голосовую модальность, по желанию пользователя. Когда, например, пользователь вводит информацию, используя цифровую клавиатуру клиентского устройства, это действие соответствует вводу данных, используя визуальную модальность, и информация будет визуализирована в качестве текста в поле ввода данных, на котором сфокусировано визуальное представление. При вводе информации (например, путем нажатия «ввод» или перемещения курсора), визуальное отображение может быть обновлено для того, чтобы отражать другой фокус.

В качестве альтернативы, пользователь может вводить информацию, используя голосовую модальность (например, пользователь может произнести название города). Когда это происходит, в варианте осуществления, клиентское устройство отсылает аудиоданные, представляющие речь, голосовому серверу. В варианте осуществления аудиоданные могут быть посланы опосредованно через сервер приложения или, в другом варианте осуществления, могут быть посланы непосредственно голосовому серверу. Голосовой сервер выполнен с возможностью непосредственно взаимодействовать с модулем распознавания речи. В варианте осуществления, голосовой сервер дополнительно выполнен с возможностью указывать модулю распознавания речи, к каким ресурсам распознавания речи (например, грамматикам, последовательностям n-символов, статистическим моделям языка или другим ресурсам) модуль распознавания речи должен осуществить доступ для того, чтобы попытаться распознать речь на основе принятых аудиоданных для заданного элемента отображения. Голосовой сервер предоставляет указания на ресурсы распознавания речи для модуля распознавания речи, основанные на интерпретации голосовым браузером речевого диалога, который соответствует машинному коду (например, многомодальной странице), интерпретируемому клиентским устройством.

В варианте осуществления модуль распознавания речи может формировать результат распознавания речи (или ошибку), который голосовой сервер может передавать клиентскому устройству через сервер приложения. Затем клиентское устройство может визуализировать результат распознавания речи в качестве текста в соответствующем поле данных, а фокусы голосового представления и визуального представления могут быть обновлены и синхронизированы, в соответствии с различными вариантами осуществления. Когда фокусы голосового представления и визуального представления синхронизированы, часть речевого диалога, интерпретируемая голосовым браузером, соответствует части машинного кода, интерпретируемой клиентским устройством.

Как будет подробно описано ниже, варианты осуществления включают в себя способы синхронизации визуального представления и голосового представления в свете способности пользователя вводить информацию, используя разнообразные модальности. Это может быть единообразно достигнуто в различных вариантах осуществления, даже несмотря на то что определение фокуса визуального представления поддерживается на клиентском устройстве, а определение фокуса голосового представления поддерживается на сервере голоса. Синхронизация может быть достигнута, используя стандартные протоколы и традиционные технологии авторинга контента, несмотря на новые подходы, тем самым способствуя и поддерживая разработку широкого разнообразия распределенных многомодальных приложений.

Фиг. 1 является упрощенной схемой системы 100, выполненной с возможностью осуществлять распределенные многомодальные приложения в соответствии с примером варианта осуществления. В варианте осуществления система 100 включает в себя множество объектов системы, которые включают в себя, по меньшей мере, одно клиентское устройство 102, сервер 104 приложения (AS), голосовой сервер 106 (VS) и модуль 134 распознавания голоса (SR). Как будет подробно описано ниже, различные синхронные и асинхронные протоколы запроса/ответа поддерживаются объектами системы для того, чтобы поддерживать осуществление сеанса распределенного многомодального приложения внутри системы 100. Используемый здесь термин «сеанс многомодального приложения» может быть определен как экземпляр распределенного многомодального приложения. В варианте осуществления сеанс многомодального приложения включает в себя интерпретацию (например, исполнение и/или интерпретацию) машинного кода (например, машинного кода, связанного с группой из одной или более связанных многомодальных страниц 115) клиентским устройством 102 совместно с интерпретацией группы из одного или более соответствующих речевых диалогов браузером/интерпретатором 132 диалога голосового сервера, исполняемым голосовым сервером 106.

Несмотря на то что проиллюстрировано одно клиентское устройство 102, система 100 может включать в себя множество подобных или отличных клиентских устройств. Например, клиентское устройство 102 может составлять часть электронного устройства, выбранного из группы устройств, которая включает в себя, чтобы назвать некоторые, но не в ограничительном смысле, сотовый телефон, рацию, пейджер, персональный цифровой помощник (PDA), персональное устройство навигации (PND), мобильную компьютерную систему (например, автомобильную или самолетную компьютерную систему), компьютер (например, лэптоп, ноутбук или настольный компьютер) и осуществленный на компьютере телефоном согласно протоколу голоса через интернет (VoIP).

Клиентское устройство 102 включает в себя подсистему обработки и подсистему хранения данных и может быть портативным или стационарным электронным устройством. Для любого типа устройства, клиентское устройство 102 может включать в себя подсистему батареи для того, чтобы предоставлять энергию в случаях, когда для питания клиентского устройства 102 не используется линия электропитания. Клиентское устройство 102 может быть выполнено с возможностью осуществления связи через одну или несколько сетей 108, используя различные проводные и/или беспроводные технологии связи. Соответственно, клиентское устройство 102 может включать в себя какой-либо один или оба из проводного и беспроводного сетевых интерфейсов. Клиентское устройство 102 также может включать в себя многообразие устройств ввода интерфейса пользователя (например, цифровую клавиатуру, клавиши, номеронабиратели, сенсорный экран, микрофон, указывающее устройство (например, мышь или сенсорную панель и стилус) и многообразие устройств вывода интерфейса пользователя (например, экран дисплея, громкоговоритель, разъем аудиовыхода, наушники, наушники-пуговки, устройство с механической вибрацией). В варианте осуществления, устройства интерфейса пользователя, связанные с визуальной модальностью, включают в себя любое одно или более устройств, выбранных из группы устройств, которая включает в себя дисплей, сенсорный экран, цифровую клавиатуру, клавиши, номеронабиратель, указательное устройство и стилус. В варианте осуществления, устройства интерфейса пользователя, связанные с голосовой модальностью, включают в себя любое одно или более устройств, выбранных из группы устройств, которая включает в себя микрофон, громкоговоритель, разъем аудиовыхода, наушники и наушники-пуговки.

В варианте осуществления, клиентское устройство 102 выполнено с возможностью исполнять один или более экземпляров клиентского браузера 112 и/или клиентского приложения 114. В варианте осуществления клиентский браузер 112 выполнен с возможностью обмениваться данными с одним или более серверами (например, сервером 104 приложения и/или голосовым сервером 106) через сеть 108. Более конкретно, клиентский браузер 112 выполнен с возможностью осуществлять доступ к машинному коду (например, многомодальной странице 115) на клиентском устройстве 102 и в дальнейшем интерпретировать этот машинный код. В конкретном варианте осуществления клиентский браузер 112 выполнен с возможностью осуществлять доступ к, по меньшей мере, одной многомодальной странице 115 и интерпретировать машинный код (например, разметку, сценарии и другую информацию) внутри многомодальной страницы 115.

Используемый здесь термин «многомодальная страница» означает набор информации, который представляет, по меньшей мере, один элемент отображения, взаимодействующий с пользователем, который может быть визуально представлен на клиентском устройстве 102 и для которого пользователь может вводить информацию и/или указывать выбор посредством любой из разнообразных модальностей (например, голосовой модальности и визуальной модальности). Многомодальная страница 115 может включать в себя, например, но не в качестве ограничения, web страницу, документ, файл, форму, список или другой тип набора информации. При интерпретации многомодальная страница 115 может предписывать клиентскому устройству 102 визуализировать один или более элементов отображения, взаимодействующих с пользователем. Используемый здесь «элемент отображения, взаимодействующий с пользователем» может включать в себя среди прочего, например, но не в качестве ограничения, поле ввода текста, выбираемый элемент (например, кнопка или кнопка-флажок) и/или интерактивный текст. Вместе с одним или более элементами отображения, взаимодействующими с пользователем, многомодальная страница также может включать в себя другую информацию и/или элементы, например, такие как текстовая информация, изображения (например, неподвижные или анимированные изображения), аудиоинформация, видео, гиперссылки, метаданные и сценарии. Используемый здесь термин «многомодальный элемент отображения» означает элемент отображения, взаимодействующий с пользователем, для которого входные данные могут быть приняты посредством более чем одной модальности интерфейса пользователя.

В варианте осуществления многомодальная страница 115 включает в себя разметку, которая может предписать клиентскому браузеру 112 (или другому программному обеспечению синтаксического анализа) исполнить один или более сценариев, которые являются встроенными или на которые делается ссылка. Сценарий может быть встроен внутри многомодальной страницы 115 или на сценарий может быть сделана ссылка внутри многомодальной страницы 115, а клиентский браузер 112 может осуществлять доступ к сценарию на внешнем источнике (например, сервере) или из локальной памяти (например, из кэша на клиентском устройстве 102).

Как будет подробно описано позже совместно с Фиг. 2-6, сценарий может быть выполнен с возможностью предписывать клиентскому устройству 102 выдавать асинхронные запросы серверу 104 приложения, а этот асинхронный запрос может оставаться ожидающим обработки внутри сервера 104 приложения до тех пор, пока голосовой сервер 106 не уведомит сервер 104 приложения о том, что произошло событие (например, событие распознавания речи или изменение фокуса голосового представления), которое может подтверждать обновление для визуального отображения и/или фокуса визуального представления. В это время сервер 104 приложения будет выдавать ответ на асинхронный запрос. Как будет объяснено более подробно ниже, этот протокол обеспечивает синхронизацию между фокусом визуального представления на клиентском устройстве 102 и фокусом голосового представления на голосовом сервере 106. В варианте осуществления, асинхронные запросы выдаются в качестве асинхронных запросов протокола передачи гипертекста (HTTP), а ответы являются HTTP-ответами. Сценарий может быть выполнен с возможностью предписывать клиентскому устройству 102 выдавать также и синхронные запросы.

Многомодальная страница 115 может быть разработана с использованием технологий AJAX (Асинхронного JavaScript и расширяемого языка разметки (XML)) и соответственно может включать в себя разметку XML и JavaScript, выполненную с возможностью выдавать асинхронные запросы (например, асинхронные HTTP-запросы), названные в предыдущем параграфе, и обрабатывать ответы (например, HTTP-ответы) на эти запросы, в варианте осуществления. В других вариантах осуществления, многомодальная страница 115 может быть разработана, используя другие типы программирования, написания сценариев и/или языков разметки, которые выполнены с возможностью выдавать асинхронные запросы и обрабатывать ответы на эти запросы.

Использованный здесь термин «язык разметки» означает определенный набор синтаксических правил для информации (например, разметки или другого машинного кода), которые являются встроенными внутри набора информации (например, многомодальной страницы 115 или другого машинного кода) и которые указывают программному обеспечению синтаксического анализа (например, клиентскому браузеру 112), среди прочего, структуру, компоновку и/или характеристики элементов отображения (например, текста или другого контента), когда элементы визуализируются на электронном устройстве. Например, но не в качестве ограничения, разметка, связанная с языком разметки, может включать в себя разметку представления, процедурную разметку и/или описательную разметку (также называемую, как «семантическая» разметка). Языки разметки, которые могут быть использованы в различных вариантах осуществления, включают в себя, но не ограничены, SGML, XML, HTML, XHTML, DHTML, VoiceXML, SALT, X+V, SVG и различные другие языки разметки.

Клиентский браузер 112 включает в себя программу программного обеспечения, которая выполнена с возможностью выполнять синтаксический анализ машинного кода (например, разметки) внутри многомодальной страницы (например, многомодальной страницы 115) таким образом, который дает возможность клиентскому устройству 102 визуализировать текст, изображения, видео, музыку и/или другую информацию, представляемую или на которую делается ссылка внутри машинного кода. В различных вариантах осуществления, клиентский браузер 112 может включать в себя, но не ограничивается, HTML/XHTML-браузер, браузер с беспроводным протоколом приложения (WAP), пользовательское приложение и/или коммерчески доступный браузер (например, чтобы назвать некоторые, Internet Explorer, Mozilla Firefox, Safari, Opera и Netscape). В конкретном варианте осуществления, клиентский браузер 112 является XHTML-браузером, который поддерживает технологии программирования AJAX и который также имеет возможности оперирования с аудио. Клиентский браузер 112, в варианте осуществления, является браузером с «возможностью многомодального режима», что означает, что клиентский браузер 112 оборудован механизмом JavaScript и/или его функциональным эквивалентом для интерпретации многомодальной страницы (или другого машинного кода, выполненного с возможностью визуализировать многомодальные элементы отображения), и при этом клиентский браузер 112 выполнен с возможностью поддерживать выдачу асинхронных запросов и взаимодействовать с HTTP-сервером (например, сервером 104 приложения). В добавление, клиентский браузер 112 может рассматриваться в качестве браузера с возможностью многомодального режима, когда клиентский браузер 112 выполнен с возможностью осуществлять доступ к аудиокомпонентам, которые выполнены с возможностью захватывать фрагменты речи пользователя (например, речь пользователя), так что аудиоданные, представляющие эти фрагменты речи, могут быть переданы. В варианте осуществления, аудиокомпоненты также выполнены с возможностью принимать и выдавать (на устройстве аудиовывода) аудионапоминания, принятые из сети через клиентский браузер 112. Аудиокомпоненты доступны в среде программным путем из среды написания сценариев клиентского браузера 112, так что сценарии, которые загружены или к которым осуществляется доступ многомодальной страницей, дают возможность пути аудиоданных быть правильно настроенным, как будет описано более подробно позже.

Клиентское приложение 114 включает в себя компьютерное приложение программного обеспечения не браузерного типа. В варианте осуществления клиентское приложение 114 является кодированным на языке, поддерживаемом браузером (например, SGML, XML, HTML, XHTML, DHTML, Flash, Java или других языках разметки), и является воспринимаемым клиентским браузером 112 для того, чтобы сделать приложение исполняемым. В другом варианте осуществления, клиентское приложение 114 может быть не воспринимаемым клиентским браузером 112 для того, чтобы сделать приложение исполняемым (например, клиентский браузер 112 может быть исключен из системы 100), и клиентское приложение 114 само осуществляет функциональность клиентского браузера 112. Например, клиентское приложение 114 может быть скомпилированной программой, выполненной с возможностью визуализировать многомодальные элементы отображения и может быть запрограммировано с использованием технологии AJAX для того, чтобы добавить голосовую модальность клиентскому устройству 102, как будет описано в дополнительных подробностях ниже. Другими словами в варианте осуществления, в котором клиентское приложение 114 включает в себя функциональность клиентского браузера 112 и клиентский браузер 112 исключен, клиентское приложение 114 может быть приложением с возможностью многомодального режима. Множество различных типов клиентских приложений 114 может быть разработано, включая, чтобы назвать некоторые, например, компоненты приложения, связанные с картографическими приложениями, приложениями навигации и приложениями поиска.

Клиентское устройство 102 может обмениваться данными с сервером 104 приложения через одну или более сетей 108. Сеть 108 может включать в себя, например, сеть с коммутацией пакетов и/или сеть с коммутацией каналов и может, более конкретно, включать в себя одно или более из Интернета, персональной сети (PAN), локальной сети (LAN), глобальной сети (WAN), Широкополосной LAN (WLAN), сети сотовой телефонии, радиосети, сети спутниковой связи, телефонной коммутируемой сети общего пользования (PSTN) и/или любой из многообразия других типов сетей, выполненных с возможностью обмениваться информацией между различными объектами системы. Сеть 108 может быть выполнена с возможностью обмениваться информацией между объектами системы, используя любые из многообразия проводных или беспроводных протоколов связи.

Сервер 104 приложения (AS) выполнен с возможностью выполнять различные AS услуги 118 для клиентского устройства 102. Например, AS услуги 118 могут включать в себя, среди прочего, прием запросов многомодальной страницы от клиентского устройства 102 и предоставление многомодальных страниц клиентскому устройству 102 в ответ на запросы. В варианте осуществления многомодальный контроллер 116 связан с сервером 104 приложения и предоставлен с таким же доменом второго уровня, как и сервер 104 приложения. Многомодальный контроллер 116 выполнен с возможностью обеспечивать синхронизацию между данными и фокусами визуального представления и голосового представления, как будет описано более подробно ниже. Так как многомодальный контроллер 116 и сервер 104 приложения находятся в одном и том же домене второго уровня, в соответствии с традиционной моделью безопасности браузера, многомодальный контроллер 116 может быть целью любых HTTP-запросов, выдаваемых клиентским браузером 112 на основе на интерпретации машинного кода, который находится внутри или на который делается ссылка в многомодальной странице 115, которая была предоставлена клиентскому устройству 102 сервером 104 приложения. Включение многомодального контроллера 116 внутри прямоугольника, соответствующего серверу 106 приложения, не подразумевает, что многомодальный контроллер 116 и сервер 106 приложения (или AS услуги 118) выполняются на одной и той же платформе. В основном сервер 106 приложения (или AS услуги 118) и многомодальный контроллер 116 должны физически и коммуникационно быть объединены таким образом, чтобы придерживаться модели безопасности, налагаемой клиентским браузером 112, в варианте осуществления.

В варианте осуществления AS услуги 118 могут включать в себя прием запросов на многомодальные страницы и речевые диалоги, извлечение многомодальных страниц и речевых диалогов и посылку их запрашивающим объектам. В противоположность, в варианте осуществления, многомодальный контроллер 116 выполнен с возможностью обеспечивать синхронизацию фокусов голосового представления и визуального представления в контексте многомодального сеанса. В добавление, многомодальный контроллер 116 может быть выполнен с возможностью переадресовывать аудиоданные, принятые от клиентского устройства голосовому серверу и наоборот. В альтернативном варианте осуществления, некоторые части или вся функциональность многомодально