Область техники, к которой относится изобретение
Обладающий признаками изобретения объект в общем относится к распределенным приложениям, и, более конкретно, к распределенным мультимодальным приложениям, реализуемым в системной среде "клиент - сервер".
Уровень техники
"Модальность" пользовательского интерфейса может быть определена как режим взаимодействия между пользователем и электронным устройством, где взаимодействие реализовано через пользовательский интерфейс устройства. Модальность пользовательского интерфейса может быть реализована через комбинацию аппаратного обеспечения и программного обеспечения, связанных с конкретным типом воспринимаемой человеком информации (например, информации, воспринимаемой с помощью зрения, звука или касания) и/или генерируемой человеком информации (например, информации, производимой через речь или другое физическое действие). Например, один тип модальности пользовательского интерфейса представляет собой "визуальную модальность", которая может быть реализована через экран дисплея, и связанное аппаратное обеспечение, и программное обеспечение для генерирования визуальных отображений на экране дисплея. Визуальная модальность также может быть реализована с использованием различных устройств ввода, которые облегчают взаимодействие пользователя с визуальным отображением, таких как устройства ввода, которые дают возможность пользователю выбирать информацию, воспроизводимую в визуальном отображении (например, с использованием механизма прокрутки, сенсорного экрана или клавиш со стрелкой), чтобы вводить информацию в области визуального отображения (например, с использованием клавишной панели) и/или изменять фокусирование визуального отображения от одной области к другой. Другой тип модальности пользовательского интерфейса представляет собой "голосовую модальность", которая может быть реализована с использованием микрофона, динамика и связанных аппаратного обеспечения и программного обеспечения, адаптированных так, чтобы принимать и оцифровывать человеческую речь и/или выводить звуковые данные (например, звуковые подсказки или другую звуковую информацию). Другие типы модальностей пользовательского интерфейса включают в себя, например, жестикуляционные модальности и перьевые модальности, из которых указаны только две.
В интересах обеспечения улучшенного удобства и простоты использования, по сравнению с устройствами "единственной модальности", многие электронные устройства включают в себя "мультимодальный" пользовательский интерфейс, который представляет собой пользовательский интерфейс, обеспечивающий более, чем одну модальность пользовательского интерфейса. Например, электронное устройство может обеспечивать и визуальную модальность, и голосовую модальность. Такое устройство может, например, одновременно выводить визуальную информацию (например, отображаемую на дисплее информацию) и связанную звуковую информацию (например, звуковые подсказки), и/или устройство может обеспечивать возможность пользователю вводить информацию через речь, клавишную панель или через то и другое, по желанию пользователя. В общем, устройство, имеющее мультимодальный пользовательский интерфейс, обеспечивает улучшенное впечатление пользователя, потому что пользователь может выбирать модальность, с помощью которой он или она будет взаимодействовать с устройством. Взаимодействие с использованием голосовой модальности может быть желательным, например, в ситуациях, в которых пользователь желает взаимодействовать без помощи рук, в таких, например, как в случае, когда печатание отнимает слишком много времени, и/или когда пользователь имеет нарушение здоровья, либо постоянное (например, из-за артрита или некоторой другой физической нетрудоспособности), либо ситуационное (например, когда на руках пользователя надеты перчатки и/или когда руки пользователя заняты другими работами). Напротив, взаимодействие с использованием визуальной модальности может быть желательным, например, в ситуациях, в которых должна быть воспроизведена комплексная информация, когда желательна слуховая конфиденциальность, когда существуют шумовые ограничения и/или когда имеются слуховые ограничения, либо постоянные (например, когда пользователь имеет сильный акцент, дефект речи и/или снижение слуха), либо ситуационные (например, когда имеется существенный фоновый шум или шумовые ограничения).
Мультимодальный пользовательский интерфейс может быть реализован в связи с приложением, которое работает в сетевой среде (например, в системной среде "клиент - сервер"). В таком случае, пользователь взаимодействует с мультимодальным пользовательским интерфейсом на клиентском устройстве (например, на телефоне для сотовой связи или на компьютере), и клиентское устройство устанавливает связь с одним или более другими устройствами или платформами (например, с сервером) через сеть. В такой сетевой среде были реализованы две основные методики, чтобы конструировать системные элементы "клиент - сервер", которые поддерживают мультимодальный пользовательский интерфейс, и, более конкретно, системные элементы, которые поддерживают пользовательский интерфейс, адаптированный так, чтобы обеспечивать по меньшей мере визуальную и голосовую модальности. При использовании "внедренной" методики, по существу все необходимые аппаратное обеспечение и программное обеспечение, связанные с множеством модальностей, включены непосредственно в клиентское устройство. Например, клиентское устройство может включать в себя программное обеспечение и аппаратное обеспечение, адаптированные так, чтобы выполнять связанные со звуком задачи, такие как обработка речи, распознавание речи и/или синтез речи, помимо всего прочего. В общем, такие связанные со звуком задачи вызывают необходимость в специальных процессорах или механизмах обработки данных (например, процессорах цифровых сигналов) и существенных объемах памяти (например, для сохранения таблиц и программного обеспечения, относящегося к связанным со звуком задачами). При использовании "распределенной" методики некоторая часть обработки, связанная с одной или более модальностями, может быть перемещена на другой обрабатывающий элемент, такой как удаленный сервер. Например, когда пользователь говорит, звуковые данные могут быть посланы из клиентского устройства на удаленный сервер, и удаленный сервер может выполнять некоторые или все связанные со звуком задачи и возвращать данные, сообщения об ошибке и/или результаты обработки на клиентское устройство.
Каждая методика имеет свои преимущества и недостатки. Например, преимущество некоторых общепринятых распределенных методик состоит в том, что некоторые из интенсивных в вычислительном отношении процессов, связанных с мультимодальным пользовательским интерфейсом (например, связанные со звуком задачи) могут быть перемещены с клиентского устройства на другой обрабатывающий элемент (например, удаленный сервер), как только что было упомянуто. Соответственно, клиентское устройство может не включать в себя специальные процессоры или механизмы обработки данных (например, процессоры цифровых сигналов) и дополнительную память для реализации задач, которые перемещены из клиентского устройства. Это означает, что клиентское устройство может быть разработано более рентабельным способом (например, устройство может быть разработано в виде "тонкого" клиента), чем клиентские устройства, которые реализуют внедренную методику.
Однако, при использовании общепринятых распределенных методик, состояния различных модальностей должны быть синхронизированы между клиентом и сервером. Трудно достигать единообразной синхронизации между состояниями множества модальностей через сеть. Более конкретно, при использовании общепринятых распределенных методик синхронизация между визуальной модальностью и голосовой модальностью может быть ненадежной, помимо всего прочего, из-за задержек, свойственных сетевой связи. Например, когда пользователь обеспечивает на словах ввод для поля ввода данных, клиентское устройство посылает данные, отражающие устный ввод, на сервер и ждет результат распознавания речи, который сервер должен возвратить прежде, чем может быть обновлено визуальное отображение, чтобы отобразить результат распознавания речи. В некоторых случаях обновление визуального отображения так, чтобы отразить обеспечиваемый на словах ввод, не может происходить достаточно своевременным образом, и визуальная и голосовая модальности могут оказываться не синхронизированными. Кроме того, реализацию мультимодального пользовательского интерфейса при использовании общепринятых распределенных методик обычно выполняют с использованием нестандартных протоколов и авторских методик нетрадиционного содержания. Соответственно, такие методики нелегко охватывать большой частью несущих или программных средств создания прикладных пакетов.
Соответственно, существует необходимость в способах и устройствах мультимодальных пользовательских интерфейсов, которые могут облегчать проектирование "тонких" клиентов и использование стандартных протоколов и авторских методик общепринятого содержания, и которые могут преодолевать проблемы синхронизации, свойственные общепринятым распределенным методикам. Другие признаки и характеристики обладающего признаками изобретения объекта станут очевидными из последующего подробного описания и прилагаемой формулы изобретения при рассмотрении их совместно с прилагаемыми чертежами и данным Предшествующим уровнем техники.
Краткое описание чертежей
В дальнейшем обладающий признаками изобретения объект будет описан вместе со следующими чертежами, на которых подобные ссылочные позиции обозначают подобные элементы, и где
фиг. 1 - упрощенная схема системы, адаптированной для реализации распределенных мультимодальных приложений, в соответствии с примерным вариантом осуществления;
фиг. 2 - блок-схема способа инициирования и проведения сеанса связи мультимодального приложения, в соответствии с примерным вариантом осуществления;
фиг. 3 - блок-схема способа выполнения инициирования сеанса связи мультимодального приложения, в соответствии с примерным вариантом осуществления;
фиг. 4 - пример визуальной разметки, воспроизводимой на клиентском устройстве, в соответствии с примерным вариантом осуществления;
фиг. 5 - блок-схема способа выполнения процесса манипулирования генерируемым голосовым сервером событием, в соответствии с примерным вариантом осуществления; и
фиг. 6 - блок-схема способа выполнения процесса манипулирования генерируемым клиентом событием, в соответствии с примерным вариантом осуществления.
Подробное описание
Варианты осуществления включают в себя способы и устройство для реализации распределенных мультимодальных приложений. Эти варианты осуществления могут облегчать использование стандартных протоколов и авторских методик общепринятого содержания, а также могут преодолевать проблемы синхронизации, свойственные некоторым общепринятым распределенным методикам. Кроме того, эти варианты осуществления можно использовать вместе с устройствами типа "тонкий клиент".
Как используется в данном описании, термин "мультимодальный" означает "адаптированный для реализации множества модальностей пользовательского интерфейса". Термины "распределенное мультимодальное приложение", "мультимодальное приложение" и "распределенное приложение" могут использоваться взаимозаменяемым образом, чтобы обозначать программное приложение, которое обеспечивает мультимодальный пользовательский интерфейс в клиентском устройстве (например, в клиентском устройстве 102, фиг. 1), и которое включает в себя отдельные компоненты, выполняемые в отдельных оперативных средствах на различных платформах (например, клиентское устройство 102, сервер 104 приложений и/или голосовой сервер 106, фиг. 1), где различные платформы взаимосвязаны через сеть (например, через сеть 108, фиг. 1).
В варианте осуществления, распределенные мультимодальные приложения адаптированы для выполнения в системе, имеющей архитектуру системы "клиент - сервер" (например, в системе 100, фиг. 1). Как используются в данном описании, термины "клиент" или "клиентское устройство" могут использоваться взаимозаменяемым образом, чтобы обозначать объект обработки данных, электронное устройство или приложение, которое адаптировано так, чтобы выполнять программное обеспечение, связанное с распределенным мультимодальным приложением (например, клиентский браузер и/или компонент приложения на стороне клиента). Кроме того, клиентское устройство адаптировано так, чтобы получать доступ через сеть к одной или более услугам, которые связаны с распределенным мультимодальным приложением и которые обеспечиваются одним или более удаленными серверами.
Термин "сервер" означает объект обработки данных, электронное устройство или приложение, которое выполняет услуги для одного или более связанных с сетью клиентов или других серверов в ответ на выданные клиентом или выданные сервером запросы. Термины "сервер приложений" и "AS" означают сервер, адаптированный так, чтобы инициировать установление линий связи данных и управления, связанных с сеансом связи распределенного мультимодального приложения, и управлять синхронизацией между различными "представлениями", связанными с сеансом связи приложения. Термин "сервер модальности" означает сервер, адаптированный так, чтобы выполнять компонент приложения на стороне сервера, который связан с одной или более модальностями пользовательского интерфейса. Термины "голосовой сервер" и "VS" означают сервер модальности, который специально адаптирован так, чтобы выполнять компонент приложения на стороне сервера, связанный с голосовой модальностью. Хотя представленное ниже описание включает в себя подробные описания системы, в которой голосовой сервер включен для поддерживания голосовой модальности, должно быть понятно, что в других вариантах осуществления, дополнительно или в качестве альтернативы в систему могут быть включены другие типы серверов модальностей, которые поддерживают другие типы модальностей пользовательского интерфейса (например, жестикуляционную модальность, перьевую модальность и так далее).
На протяжении всего этого описания будет использоваться конкретный пример распределенного мультимодального приложения для того, чтобы облегчать понимание примерных вариантов осуществления. Должно быть понятно, что иллюстративный пример не следует воспринимать как ограничение объема вариантов осуществления только этим примером. В примерном варианте осуществления, распределенное мультимодальное приложение адаптировано так, чтобы поддерживать визуальную модальность и голосовую модальность. Клиентское устройство включает в себя "допускаемый мультимодальностью" браузер и/или компонент приложения на стороне клиента, любой или оба из которых адаптированы так, чтобы интерпретировать машинный код, который заставляет клиентское устройство воспроизводить визуальное отображение, включающее в себя по меньшей мере один элемент отображения, для которого входные данные подлежат приему клиентским устройством через визуальную модальность или голосовую модальность. В варианте осуществления включен - и/или на него делается ссылка в мультимодальной странице - машинный код, который, когда интерпретируется, заставляет клиентское устройство воспроизводить множество интерактивных элементов отображения (например, поля ввода данных для города, штата, номера дома на улице и названия улицы).
Как используется в данном описании, термин "интерпретировать" означает "интерпретировать" и/или "выполнять", как эти термины понимаются специалистами в данной области техники. Термин "машинный код", как используется в данном описании, означает разметку (например, разметку, производимую на стандартном обобщенном языке разметки (SGML), расширяемом языке разметки (XML), языке гипертекстовой разметки (HTML), расширяемом HTML (XHTML), динамическом HTML (DHTML), VoiceXML, языке тегов речевых приложений (SALT), масштабируемой векторной графике (SVG) и/или различных других языках разметок), сценарии (например, код JavaScript), оттранслированную программу (например, откомпилированную C/C++, Java, Lisp, Fortran, Pascal и так далее), и/или другую информацию, которая может быть без труда выполнена или интерпретирована компьютерным процессором (например, клиентским устройством 102, сервером 104 приложений и/или голосовым сервером 106, фиг. 1).
Обращаясь снова к примерному мультимодальному приложению, обсуждаемому в данном описании, отметим, что пользователь клиентского устройства может вводить информацию для элемента отображения, на котором в настоящее время "сфокусировано" приложение (например, для элемента, который выбран или в котором мигает курсор), и/или может изменять фокусирование (например, выбирая другой элемент). В варианте осуществления пользователь может вводить информацию для элемента отображения с использованием либо визуальной модальности, либо голосовой модальности, по желанию пользователя. Когда пользователь вводит информацию, используя, например, клавишную панель клиентского устройства, это действие соответствует вводу данных с использованием визуальной модальности, и информация будет воспроизведена как текст в поле ввода данных, на котором сфокусировано визуальное представление. После предъявления на рассмотрение информации (например, посредством нажатия "enter" (ввод) или перемещения курсора), визуальное отображение может быть обновлено так, чтобы отразить другое фокусирование.
В качестве альтернативы, пользователь может вводить информацию с использованием голосовой модальности (например, пользователь может сказать название города). Когда это происходит, в варианте осуществления, клиентское устройство посылает звуковые данные, представляющие речь, в голосовой сервер по тракту звуковых данных. Голосовой сервер адаптирован так, чтобы выполнять, в варианте осуществления, программу распознавания речи, которая оценивает принимаемые звуковые данные в свете речевого диалога, который соответствует машинному коду (например, мультимодальной странице или коду, связанному с компонентом приложения на стороне клиента), интерпретируемого клиентским устройством. Программа распознавания речи может генерировать результат распознавания речи (или ошибку), который, в варианте осуществления, голосовой сервер может передавать на клиентское устройство через сервер приложений. Затем клиентское устройство может воспроизводить результат распознавания речи как текст в соответствующем поле данных, и состояния голосового представления и визуального представления могут обновляться и синхронизироваться в соответствии с различными вариантами осуществления. Когда состояния голосового представления и визуального представления синхронизированы, часть речевого диалога, интерпретируемого голосовым сервером, соответствует части машинного кода, интерпретируемого клиентским устройством.
Как будет подробно описано ниже, варианты осуществления включают в себя способы синхронизации визуального представления и голосового представления в свете возможности пользователя вводить информацию с использованием любой модальности. Это может быть последовательно достигнуто, в различных вариантах осуществления, даже притом, что состояние визуального представления поддерживается на клиентском устройстве, а состояние голосового представления поддерживается на голосовом сервере. Синхронизация может быть достигнута с использованием стандартных протоколов и авторских методик общепринятого содержания, хотя и новыми способами, таким образом, облегчая и поощряя разработку большого разнообразия распределенных мультимодальных приложений.
Фиг. 1 представляет упрощенную схему системы 100, адаптированной для реализации распределенных мультимодальных приложений, в соответствии с примерным вариантом осуществления. Система 100 включает в себя множество системных объектов, которые включают в себя, в варианте осуществления, по меньшей мере одно клиентское устройство 102, сервер 104 приложений (AS) и голосовой сервер 106 (VS). Как будет подробно объясняться ниже, между этими системными объектами устанавливаются различные тракты данных и управления, и системные объекты соблюдают различные коммуникационные протоколы, чтобы поддерживать реализацию сеанса связи распределенного мультимодального приложения в пределах системы 100. Как используется в данном описании, термин "сеанс связи мультимодального приложения" может быть определен как образец распределенного мультимодального приложения. В варианте осуществления сеанс связи мультимодального приложения включает в себя интерпретирование (например, выполнение и/или интерпретирование) машинного кода (например, машинного кода, связанного с компонентом 114 приложения на стороне клиента и/или с группой из одной или более связанных мультимодальных страниц 115) клиентским устройством 102 в связи с интерпретированием группы из одного или более соответствующих речевых диалогов голосовым сервером 106.
Хотя иллюстрируется только одно клиентское устройство 102, система 100 может включать в себя множество подобных или различных типов клиентских устройств. Например, клиентское устройство 102 может формировать часть электронного устройства, выбираемого из группы устройств, которые включают в себя, но не ограничиваясь этим, телефон для сотовой связи, радиоприемник, пейджер, персонального цифрового секретаря (PDA), персональное навигационное устройство (PND), портативную компьютерную систему (например, автомобильную или самолетную компьютерную систему), компьютер (например, дорожный компьютер, портативный компьютер или настольный компьютер) и телефон передачи голоса по межсетевому протоколу (VoIP), реализованный в компьютере, где указаны только несколько.
Клиентское устройство 102 включает в себя подсистему обработки данных и подсистему хранения данных и может быть переносным или стационарным электронным устройством. Для любого типа устройства, клиентское устройство 102 может включать в себя подсистему батареи, адаптированную так, чтобы обеспечивать энергию, когда мощность линии электропитания для питания клиентского устройства 102 не используется. Клиентское устройство 102 может быть адаптировано так, чтобы устанавливать связь через одну или более сетей 108, используя различные технологии проводной и/или беспроводной связи. Соответственно, клиентское устройство 102 может включать в себя любой или оба из проводного и беспроводного сетевых интерфейсов. Клиентское устройство 102 также может включать в себя ряд устройств ввода пользовательского интерфейса (например, клавишную панель, клавиши, дисковые номеронабиратели, сенсорный экран, микрофон, координатно-указательное устройство (например, мышь или сенсорную панель) и бесчернильное пишущее перо) и ряд устройств вывода пользовательского интерфейса (например, экран дисплея, динамик, гнездо для подключения наушников, наушники, наушники-пуговки, устройство механических вибраций). В варианте осуществления, устройства пользовательского интерфейса, связанные с визуальной модальностью, включают в себя какое-либо одно или более устройств, выбираемых из группы устройств, которая включает в себя визуальный дисплей, сенсорный экран, клавишную панель, клавиши, дисковый номеронабиратель, координатно-указательное устройство и бесчернильное пишущее перо. Устройства пользовательского интерфейса, связанные с голосовой модальностью, включают в себя какое-либо одно или более устройств, выбираемых из группы устройств, которая включает в себя, в варианте осуществления, микрофон, динамик, гнездо для подключения наушников, наушники и наушники-пуговки.
В варианте осуществления клиентское устройство 102 адаптировано так, чтобы выполнять один или более экземпляров клиентского промежуточного программного обеспечения 110, клиентского браузера 112 и/или компонента 114 приложения на стороне клиента. Как используется в данном описании, термин "промежуточное программное обеспечение" означает программное обеспечение для компьютеров, которое обеспечивает сопряжение между программными компонентами и/или приложениями, выполняемыми на отдельных объектах обработки данных (например, на клиентах, серверах или других объектах обработки данных). В варианте осуществления клиентское промежуточное программное обеспечение 110 адаптировано так, чтобы обеспечивать сопряжение между клиентским браузером 112 и/или компонентом 114 приложения на стороне клиента и одним или более серверами (например, сервером 104 приложений и голосовым сервером 106) через сеть 108.
Клиентский браузер 112 адаптирован так, чтобы обращаться к машинному коду (например, к мультимодальной странице 115) в клиентском устройстве 102 в связи с компонентом 114 приложения на стороне клиента и дополнительно интерпретировать машинный код. В конкретном варианте осуществления клиентский браузер 112 адаптирован так, чтобы обращаться, по меньшей мере, к одной мультимодальной странице 115 и интерпретировать машинный код (например, разметку, сценарии и другую информацию) в пределах мультимодальной страницы 115. Как используется в данном описании, термин "мультимодальная страница" означает информационный набор, представляющий по меньшей мере один взаимодействующий с пользователем элемент отображения, который может быть визуально представлен на клиентском устройстве 102 и для которого пользователь может вводить информацию и/или указывать выбранный элемент через любую из множества модальностей (например, голосовую модальность и визуальную модальность). Мультимодальная страница 115 может включать в себя, в качестве примера, но не посредством ограничения, web-страницу, документ, файл, форму, перечень или другой тип информационного набора. При ее интерпретировании, мультимодальная страница 115 может заставлять клиентское устройство 102 воспроизводить один или более взаимодействующих с пользователем элементов отображения. Как используется в данном описании, "взаимодействующий с пользователем элемент отображения" может включать в себя, в качестве примера, но не посредством ограничения, помимо всего прочего, поле ввода текста, выбираемый элемент (например, кнопку или экранную кнопку) и/или интерактивный текст. Наряду с одним или более взаимодействующими с пользователем элементами отображения, мультимодальная страница также может включать в себя другую информацию и/или элементы, например, такие как текстовая информация, изображения (например, статические или динамические изображения), звуковые данные, видеоизображение, гипертекстовые связи, метаданные и сценарии.
В варианте осуществления мультимодальная страница 115 включает в себя разметку, которая может заставлять клиентский браузер 112 и/или компонент 114 приложения на стороне клиента (или другое программное обеспечение синтаксического анализа) выполнять один или более внедренных или указанных ссылкой сценариев (например, код JavaScript). Сценарий может быть внедрен в мультимодальную страницу 115, или сценарий может упоминаться в мультимодальной странице 115, и клиентский браузер 112 и/или компонент 114 приложения на стороне клиента может обращаться к сценарию из внешнего источника (например, из сервера) или из локального запоминающего устройства (например, из кэш-памяти в клиентском устройстве 102). В альтернативном варианте осуществления сценарий может быть внедрен или может упоминаться скорее в компоненте 114 приложения на стороне клиента, чем на мультимодальной странице 115. В варианте осуществления сценарий может быть адаптирован так, чтобы заставлять клиентское устройство 102 выдавать асинхронный запрос на сервер 104 приложений для ряда целей, как будет подробно описано ниже в связи с фиг. 2-6. В представленном ниже описании, когда клиентское устройство 102, как говорят, посылает управляющее сообщение на сервер 104 приложений, во многих случаях это можно интерпретировать как клиентское устройство 102, выдающее асинхронный запрос на сервер 104 приложений. Точно так же, когда сервер 104 приложений, как говорят, посылает управляющее сообщение на клиентское устройство 102, это можно интерпретировать как сервер 104 приложений, выдающий ответ на асинхронный запрос, предварительно посланный клиентским устройством 102. В варианте осуществления асинхронные запросы посылаются как асинхронные запросы протокола передачи гипертекста (HTTP), а ответы представляют собой ответы HTTP.
Компонент 114 приложения на стороне клиента и/или мультимодальная страница 115 могут быть разработаны с использованием методик AJAX (Асинхронного JavaScript и расширяемого языка разметки (XML)), и, в варианте осуществления, соответственно, могут включать в себя разметку XML и JavaScript, адаптированные так, чтобы посылать асинхронные запросы (например, асинхронные запросы HTTP) и обрабатывать ответы (например, ответы HTTP) на эти запросы. В других вариантах осуществления компонент 114 приложения на стороне клиента и/или мультимодальная страница 115 могут быть разработаны с использованием других типов программирования, создания сценариев и/или языков разметок.
Как используется в данном описании, термин "язык разметки" означает определенный набор правил синтаксиса для информации (например, разметку или другой машинный код), который можно вкладывать в информационный набор (например, в мультимодальную страницу 115 или другой машинный код), и который указывает, для программного обеспечения синтаксического анализа (например, для клиентского браузера 112 и/или компонента 114 приложения на стороне клиента), структуру, размещение и/или другие характеристики элементов отображения (например, текста или другого содержимого), когда элементы воспроизводятся на электронном устройстве, помимо всего прочего. В качестве примера, но не посредством ограничения, разметка, связанная с языком разметки, может включать в себя разметку представления, процедурную разметку и/или описательную разметку (также упоминаемую как "семантическая" разметка). Языки разметок, которые могут использоваться в различных вариантах осуществления, включают в себя, но не ограничиваясь этим, SGML, XML, HTML, XHTML, DHTML, VoiceXML, SALT, SVG и различные другие языки разметок.
Клиентский браузер 112 включает в себя программу программного обеспечения, которая адаптирована так, чтобы выполнять синтаксический анализ машинного кода (например, разметки) в пределах мультимодальной страницы (например, мультимодальной страницы 115) и/или обеспечивать сопряжение с компонентом 114 приложения на стороне клиента способом, который дает возможность клиентскому устройству 102 воспроизводить текст, изображения, видеоизображения, музыку и/или другую информацию, представленную или упомянутую в машинном коде и/или компоненте 114 приложения на стороне клиента. В различных вариантах осуществления клиентский браузер 112 может включать в себя, но не ограничиваясь этим, браузер HTML/XHTML, браузер протокола приложений для беспроводной связи (WAP), заказное приложение и/или коммерчески доступный браузер (например, Internet Explorer (Интернет-эксплорер), Mozilla Firefox, Safari, Opera и Netscape, где указаны только несколько). В конкретном варианте осуществления клиентский браузер 112 представляет собой браузер XHTML, который поддерживает выполнение JavaScript и сетевую передачу информации HTTP, и который также имеет возможности манипулирования звуком. Клиентский браузер 112 является "мультимодально активизируемым", в варианте осуществления, и это означает, что клиентский браузер 112 адаптирован так, чтобы интерпретировать машинный код, связанный с мультимодальными приложениями.
Компонент 114 приложения на стороне клиента включает в себя приложение программного обеспечения для компьютеров. В варианте осуществления компонент приложения на стороне клиента закодирован на поддерживаемом браузером языке (например, на SGML, XML, HTML, XHTML, DHTML или других языках разметки) и полагается на клиентский браузер 112, чтобы воспроизводить выполняемый компонент приложения. В других вариантах осуществления компонент 114 приложения на стороне клиента может не полагаться на клиентский браузер 112, чтобы воспроизводить выполняемый компонент приложения. Может быть разработано множество различных типов компонентов 114 приложения на стороне клиента, включая, например, компоненты приложения, связанные с приложениями картографирования, навигационными приложениями и поисковыми приложениями, где указаны только несколько.
Клиентское устройство 102 может устанавливать связь с сервером 104 приложений и голосовым сервером 106 через одну или более сетей 108. Сеть 108 может включать в себя, например, сеть с коммутацией пакетов и/или сеть с коммутацией каналов, и, более конкретно, может включать в себя одну или более из Интернета, персональной сети (PAN), локальной сети (LAN), глобальной сети (WAN), широкополосной LAN (WLAN), телефонной сети сотовой связи, радиосети, сети спутниковой связи, коммутируемой телефонной сети общего пользования (PSTN) и/или любой из ряда других типов сетей, адаптированных так, чтобы допускать обмен информацией между различными системными объектами. Сеть 108 может быть адаптирована для обмена информацией между системными объектами, использующими любой из ряда протоколов проводной или беспроводной связи.
Сервер 104 приложений (AS) адаптирован так, чтобы выполнять различные услуги для клиентского устройства 102. В варианте осуществления сервер 104 приложений адаптирован так, чтобы выполнять один или более экземпляров из промежуточного программного обеспечения 116 AS и услуг 118 AS, как будет более подробно описано ниже. В варианте осуществления промежуточное программное обеспечение 116 AS адаптировано так, чтобы обеспечивать сопряжение с голосовым сервером 106 и клиентским устройством 102 через подключение 140 сервера к серверу и сеть 108, соответственно.
В варианте осуществления, услуги 118 AS включают в себя программное обеспечение установления сеанса связи, которое адаптировано так, чтобы инициировать установление различных трактов 120, 122, 124 передачи данных и управления между клиентским устройством 102, сервером 104 приложений и голосовым сервером 106, в связи с сеансом связи мультимодального приложения. Тракты передачи данных и управления, связанные с сеансом связи мультимодального приложения, могут включать в себя, например, тракт 120 управления AS/клиента, тракт 122 управления AS/VS и тракт 124 звуковых данных VS/клиента. В варианте осуществления клиентское устройство 102 и сервер 104 приложений могут обмениваться информацией по тракту 120 управления AS/клиента, а клиентское устройство 102 и голосовой сервер 106 могут обмениваться информацией по тракту 124 звуковых данных VS/клиента, где по меньшей мере части тракта 120 управления AS/клиента и тракта 124 звуковых данных VS/клиента установлены через одну или более сетей 108. Сервер 104 приложений и голосовой сервер 106 могут обмениваться информацией по тракту 122 управления AS/VS, по меньшей мере часть которого установлена через подключение 140 сервера к серверу, которое может включать в себя прямые, аппаратные линии связи или которое может быть воплощено через одну или более проводных или беспроводных сетей или других промежуточных объектов.
В варианте осуществления управляющие сообщения, обмениваемые между клиентским устройством 102 и сервером 104 приложений в связи с сеансом связи мультимодального приложения, обмениваются через сеть 108 с использованием коммуникационного протокола передачи сообщений, подходящего для сети 108. Соответственно, сеть 108 функционирует как тракт управления между клиентским устройством 102 и сервером 104 приложений. Этот тракт управления упоминается в данном описании в сингулярном смысле как тракт 120 управления AS/клиента, даже при том, что определенный тракт маршрутизации через сеть 108 для сеанса связи может быть не выделен, и физическая маршрутизация, через сеть 108, каждого сообщения, обмениваемого между клиентским устройством 102 и сервером 104 приложений, от сообщения к сообщению может различаться. Соответственно, как используется в данном описании, "тракт управления AS/клиента" может быть определен так, чтобы обозначать какой-либо один или более из трактов через сеть 108 (или некоторую другую коммуникационную среду), по которому может производиться обменен сообщениями между IP-адресом и/или портом, связанным с клиентским устройством 102, и IP-адресом и/или портом, связанным с сервером 104 приложений. Точно так же "тракт управления AS/VS" может быть определен так, чтобы обозначать какой-либо один или более из трактов (которые могут пересекать или не пересекать сеть) между IP-адресом и/или портом, связанным с сервером 104 приложений, и IP-адресом и/или портом, связанным с голосовым сервером 106. Дополнительно, "тракт звуковых данных VS/клиента" может быть определен так, чтобы обозначать какой-либо один или более из трактов через сеть 108 (или некоторую другую коммуникационную среду), по которому может производиться обмен звуковыми данными между IP-адресом и/или портом, связанным с голосовым сервером 106, и IP-адресом и/или портом, связанным с клиентским устройством 102. В варианте осуществления тракт 120 управления AS/клиента и тракт 124 звуковых данных VS/клиента отличаются друг от друга тем, что IP-адрес клиента и/или выделенный порт, в течение сеанса связи, для тракта 120 управления AS/клиента отличается от IP-адреса клиента и/или выделенного порта, в течение сеанса связи, для тракта 124 звуковых данных VS/клиента. Кроме того, IP-адрес и/или порт сервера приложений, выделенный для тракта 120 управления AS/клиента, отличается от IP-адреса и/или порта голосового сервера, выделенного для тракта 124 звуковых данных VS/клиента, что происходит из-за того, что сервер 104 приложений и голосовой сервер 106 отличаются друг от друга.
Как было предварительно упомянуто, машинный код, связанный с мультимодальными страницами, представленными в клиентском устройстве 102, и/или с компонентами приложения на стороне клиента, выполняемыми в клиентском устройстве 102, адаптирован так, чтобы посылать асинхронные запросы (например, асинхронные запросы HTTP), которые принимаются сервером 104 приложений, по тракту 120 управления AS/клиента. Услуги AS 118 адаптированы так, чтобы выполнять обработку и/или другие задачи в соответствии с запросами и возвращать ответы (например, ответы HTTP) на клиентское устройство 102 по тракту 120 управления AS/клиента, соответственно. Кроме того, через управляющие сообщения, передаваемые по тракту 120 управления AS/клиента и тракту 122 управления AS/VS, услуги 118 AS адаптированы так, чтобы управлять синхронизацией между состояниями визуального представления, поддерживаемыми на клиентском устройстве 102, и голосового представления, поддерживаемыми на голосовом сервере 106. По существу, синхронизация визуального представления и голосового представления включает в себя обеспечение информации для клиентского устройства 102 и голосового сервера 106, которая обеспечивает возможность, чтобы интерпретирование машинного кода на клиентском устройстве 102 было синхронизировано с интерпретированием машинного кода для соответствующего речевого диалога 136 на голосовом сервере 106. Упоминается другой путь, при котором синхронизация визуального представления и голосового представления включает в себя обеспечение информации для клиентского устройства 102 и для голосового сервера 106, что дает возможность синхронизировать состояние выполнения визуального представления на клиентском устройстве 102 с состоянием выполнения голосового представления на голосовом сервере 106. Варианты осуществления способов выполнения этой синхронизации более подробно будут описаны позже.
Голосовой сервер 106 представляет собой сервер модальности, который, в частности, адаптирован так, чтобы выполнять обработку речи, связанную с задачами, находящимися в связи с сеансом связи распределенного мультимодального приложения. Как было предварительно упомянуто, в других вариантах осуществления в систему могут быть встроены другие типы серверов модальностей. Голосовой сервер 106 адаптирован так, чтобы выполнять один или более экземпляров промежуточного программного обеспечения 130 VS, браузера/диалогового интерпретатора 132 VS (упоминаемого ниже как браузер 132 VS) и программы 134 распознавания речи. Программа 134 распознавания речи может рассматриваться как компонент приложения на стороне VS, поскольку она формирует серверную часть распределенного приложения. В других вариантах осуществления могут быть реализованы другие типы компонентов приложения на стороне VS.
Промежуточное программное обеспечение 130 VS адаптировано так, чтобы обеспечивать сопряжение между браузером 132 VS и другими серверами (например, сервером 104 приложений) и/или клиентским устройством 102 через подключение 140 сервера к серверу и/или сеть 108, соответственно. Браузер 132 VS представляет собой программу, которая дает возможность голосовому серверу 106 обращаться и интерпретировать речевые диалоги (например, речевой диалог 136), посылать и принимать звуковые данные в связи с интерпретацией речевых диалогов, выдавать асинхронные запросы (например, асинхронные запросы HTTP) и принимать и обрабатывать ответы (например, ответы HTTP) в контексте сеанса связи мультимодального приложения. В различных вариантах осуществления браузер 106 VS может включать в себя, но не ограничиваясь этим, заказной или коммерчески доступный браузер или другое приложение, адаптированное так, чтобы интерпретировать разметку, связанную с обеспечением голосовой модальности (например, VoiceXML, SALT и/или различные другие языки разметки).
Как только что было упомянуто, браузер 132 VS может обращаться к речевому диалогу 136 и интерпретировать его. Как используется в данном описании, "речевой диалог" может интерпретироваться так, чтобы обозначать информационный набор, связанный с набором возможных результатов распознавания речи и/или звуковых подсказок. Речевой диалог может включать в себя машинный код, адаптированный так, чтобы собирать и/или обеспечивать звуковые данные (например, речевые подсказки) на одной или более стадиях, в соответствии с различными вариантами осуществления. Речевой диалог может включать в себя, в качестве примера, но не посредством ограничения, web-страницу, документ, файл, перечень или другой тип информационного набора. Речевой диалог также может включать в себя другую информацию и/или элементы, такие, например, как текстовая информация, метаданные, машинный код и сценарии. Хотя описанные ниже варианты осуществления включают в себя речевые диалоги, к которым получает доступ (например, при загрузке) голосовой сервер 106, должно быть понятно, что, в других вариантах осуществления, речевой диалог может быть реализован в виде машинного кода, который является резидентной программой на голосовом сервере 106 и который не должен загружаться, или доступ к которому должен быть получен иначе.
В варианте осуществления речевой диалог 136 включает в себя машинный код, где машинный код может включать в себя оттранслированную программу, разметку и/или другую информацию, которая может без труда интерпретироваться голосовым сервером 106. В конкретном варианте осуществления, речевой диалог 136 может включать в себя разметку, которая заставляет браузер 132 VS обращаться и/или выполнять один или более внедренных или ссылочных сценариев (например, код JavaScript). Сценарий может быть внедрен в речевой диалог 136, или браузер 132 VS может обращаться к сценарию из внешнего источника (например, из сервера), или из локального запоминающего устройства (например, из кэш-памяти на голосовом сервере 106). Сценарии могут включать в себя сценарии, адаптированные так, чтобы вызывать программу 134 распознавания речи, чтобы пытаться определить результат распознавания речи на основании принятых звуковых данных, отыскивать или генерировать звуковую подсказку и/или выдавать асинхронные запросы (например, асинхронные запросы HTTP относительно речевых диалогов или другие типы запросов), помимо всего прочего. Речевой диалог 136 может быть разработан с использованием методик AJAX и, соответственно, в варианте осуществления, может включать в себя разметку (например, разметку VoiceXML и/или SALT) и JavaScript, адаптированные так, чтобы посылать асинхронные запросы. В других вариантах осуществления речевой диалог 136 может быть разработан с использованием других типов языков программирования, языков сценариев и/или языков разметок.
Программа 134 распознавания речи представляет собой приложение, которое может быть вызвано браузером 132 VS, и она адаптирована так, чтобы принимать звуковые данные (например, в сжатом, распакованном, закодированном, незакодированном или декодированном формате), выполнять алгоритм распознавания речи с использованием звуковых данных, чтобы пытаться определить результат распознавания речи (например, индикацию распознанной речи) и возвращать результат распознавания речи или указывать, что результат не был определен. Как используется в данном описании, термин "звуковые данные" означает оцифрованное представление речи или других слышимых звуков (в общем, "звуковые данные"), где оцифрованное звуковое представление может включать в себя выборочную речь или другие слышимые звуки в сжатом, распаковываемом, закодированном, незакодированном и/или декодированном формате. Звуковые данные также могут включать в себя указатели в таблицах или других структурах данных, которые включают в себя звуковые данные, где таблицы могут быть доступны для сервера 102 приложений, голосового сервера 106 и/или клиентского устройства 102. Программа 134 распознавания речи может выполняться в связи с одной или более речевыми библиотеками 138 или с другими ресурсами распознавания речи (например, с грамматиками, последовательностями n-грамм, статистическими моделями языка или другими ресурсами распознавания речи), где доступ к ресурсам распознавания речи может быть получен на основании конкретного речевого диалога 136, подлежащего интерпретированию.
В варианте осуществления голосовой сервер 106 устанавливает связь с сервером 104 приложений по тракту 122 управления AS/VS. Кроме того, голосовой сервер 106 и клиентское устройство 102 могут непосредственно обмениваться звуковыми данными по тракту 124 звуковых данных VS/клиента. В варианте осуществления звуковые данные могут течь потоковым образом по тракту 124 звуковых данных VS/клиента с использованием коммуникационного протокола передачи пакетированных данных. В качестве альтернативы, может производиться обмен звуковыми данными по тракту 124 звуковых данных VS/клиента с использованием способов связи с коммутацией каналов или в режиме "нажал - говори" (PTT). В варианте осуществления, звуковые данные передаются по тракту 124 звуковых данных VS/клиента с использованием версии транспортного протокола реального времени/протокола управления передачей в реальном времени (RTP/RTCP), хотя в других вариантах осуществления могут быть реализованы другие протоколы (например, протокол управления передачей (TCP) или другие).
Сервер 104 приложений и голосовой сервер 106 отличаются друг от друга тем, что сервер 104 приложений и голосовой сервер 106 выполняют отдельные процессы и обмениваются управляющими сообщениями, которые влияют на эффективность этих процессов, по тракту 122 управления AS/VS. Кроме того, тракт 120 управления AS/клиента между клиентским устройством 102 и сервером 104 приложений отличается от тракта 124 звуковых данных VS/клиента между клиентским устройством 102 и голосовым сервером 106 по меньшей мере тем, что клиентское устройство 102 обращается к серверу приложения 104 и голосовому серверу 106, используя различные адреса (например, различные IP-адреса). Кроме того, клиентское устройство 102 может обмениваться управляющими сообщениями с сервером 104 приложений с использованием коммуникационного протокола, отличающегося от протокола, используемого для обмена звуковыми данными с голосовым сервером 106. В варианте осуществления сервер 104 приложений и голосовой сервер 106 могут быть реализованы на физически раздельном аппаратном обеспечении, которое может быть размещено совместно или раздельно. В другом варианте осуществления сервер 104 приложений и голосовой сервер 106 могут быть реализованы, по меньшей мере частично, на совместно используемом аппаратном обеспечении, хотя между этими двумя серверами все еще производится обмен различными управляющими сообщениями по тракту 122 управления AS/VS, как подробно описано ниже.
Как предварительно было упомянуто, варианты осуществления обладающего признаками изобретения объекта адаптированы так, чтобы синхронизировать визуальное представление и звуковое представление, связанные с сеансом связи распределенного мультимодального приложения. Состояние "визуального представления" поддерживается клиентским устройством 102, в связи с интерпретацией мультимодальной страницы (например, мультимодальной страницы 115), а состояние "звукового представления" поддерживается голосовым сервером 106, в связи с интерпретацией речевого диалога (например, речевого диалога 136), связанного с мультимодальной страницей. Термины "визуальное представление" и "состояние визуального представления" могут быть определены как являющиеся машинным кодом, который включен или к которому обращаются в пределах мультимодальной страницы, которую браузер (например, клиентский браузер 112) в настоящее время интерпретирует или ожидает, чтобы интерпретировать, и/или машинным кодом, который включен или к которому обращаются в пределах компонента приложения на стороне клиента, который в настоящее время выполняется. Например, текущее состояние визуального представления может соответствовать машинному коду, связанному с единственным элементом страницы, на котором в настоящее время сфокусировано визуальное отображение, которое может быть представлено на визуальном отображении как элемент страницы, который подсвечен, в котором мигает курсор или в котором установлена некоторая другая индикация фокусирования. Термины "звуковое представление" и "состояние звукового представления" могут быть определены как являющиеся машинным кодом, который включен или к которому обращаются в пределах речевого диалога, который браузер (например, браузер 132 VS) в настоящее время выполняет или ожидает, чтобы выполнять. Например, текущее состояние звукового представления может соответствовать машинному коду, который заставляет голосовой сервер ожидать приема звуковых данных в качестве ввода для элемента отображения, который представлен на клиентском устройстве 102.
Варианты осуществления способов инициирования и проведения сеанса связи мультимодального приложения теперь будут описаны в связи с фиг. 2-6. Эти варианты осуществления будут описаны в контексте примера определенного типа распределенного мультимодального приложения, чтобы облегчить объяснение и понимание различных вариантов осуществления. Примерное приложение представляет собой приложение картографирования, которое включает в себя компонент приложения на стороне клиента, адаптированный так, чтобы заставлять элементы, представленные в пределах мультимодальной страницы, воспроизводиться на клиентском устройстве через интерпретирование посредством клиентского браузера. Компонент приложения на стороне клиента (например, приложение картографирования) и клиентский браузер являются "мультимодально активизируемыми", и это означает, что каждый из них адаптирован так, чтобы поддерживать пользовательский интерфейс, который распознает и/или обеспечивает взаимодействие пользователя с использованием множества модальностей, а клиентский браузер, в частности, адаптирован так, чтобы понимать и обмениваться сообщениями с одним или более удаленными серверами в поддержке сеанса связи распределенного мультимодального приложения. В альтернативном варианте осуществления, клиентский браузер может быть адаптирован так, чтобы интерпретировать мультимодальную страницу без инициирования от компонента приложения на стороне клиента (например, когда пользователь непосредственно инициирует экземпляр клиентского браузера и заставляет клиентский браузер загружать и интерпретировать мультимодальную страницу). В еще одном альтернативном варианте осуществления, компонент приложения на стороне клиента может выполнять некоторые или все задачи клиентского браузера, и/или компонент приложения на стороне клиента может включать в себя некоторую часть или весь машинный код, который в противном случае может быть включен в мультимодальную страницу. Соответственно, варианты осуществления могут быть выполнены с помощью мультимодальной страницы или без нее. Эти варианты осуществления в данном описании подробно не обсуждаются, хотя должно быть понятно, что они находятся в пределах обладающего признаками изобретения объекта.
Пример будет включать в себя клиентское устройство, отображающее мультимодальную страницу в виде формы ввода данных, где форма ввода данных включает в себя множество заполняемых полей ввода данных (например, название города, штата, номер дома и название улицы), в которые пользователь может вводить информацию об адресе для определения местоположения с использованием любой или обоих из визуальной модальности и голосовой модальности. После предъявления на рассмотрение введенной информации система может обеспечивать информацию картографирования, дающую возможность клиентскому устройству отображать карту, которая включает в себя целевое определение местоположения. Должно быть понятно, что варианты осуществления также могут использоваться в связи с другими типами распределенных мультимодальных приложений (например, среди прочих, с поисковыми и навигационными приложениями).
В данном примере множество модальностей включает в себя визуальную модальность и голосовую модальность. На клиентском устройстве визуальная модальность может быть реализована с использованием экрана дисплея и связанных аппаратного обеспечения и программного обеспечения для генерирования визуальных отображений. Визуальная модальность также может быть реализована на клиентском устройстве с использованием клавишной панели и/или одного или более других устройств ввода пользовательского интерфейса, которые дают возможность пользователю делать выборы, вводить информацию и/или выполнять другие действия (например, изменять фокусирование) через взаимодействие с визуальным дисплеем и/или другими устройствами ввода пользовательского интерфейса. Голосовая модальность может быть реализована на клиентском устройстве с использованием микрофона, динамика и связанных аппаратного обеспечения и программного обеспечения, адаптированных так, чтобы принимать и оцифровывать человеческую речь и/или выводить звуковые данные.
В данном примере, пользователь может взаимодействовать с визуальной модальностью пользовательского интерфейса (например, с визуальным дисплеем), рассматривая визуальный дисплей и вводя информацию в поля визуального дисплея (или делая выборы) с использованием клавишной панели или других устройств ввода. Кроме того, пользователь может взаимодействовать с голосовой модальностью пользовательского интерфейса, слушая звуковые подсказки и/или говоря, чтобы обеспечивать информацию, связанную с элементами страницы, на которых установлено фокусирование визуального отображения. Должно быть понятно, что, в альтернативных вариантах осуществления, распределенное мультимодальное приложение может быть адаптировано так, чтобы допускать набор модальностей, отличающийся от визуальной модальности и голосовой модальности.
Фиг. 2, которая будет описана ниже, иллюстрирует полный процесс инициирования и проведения сеанса связи мультимодального приложения, в соответствии с вариантом осуществления. Фиг. 2 не предназначена для того, чтобы ограничивать объем обладающего признаками изобретения объекта, а вместо этого предназначена для того, чтобы обеспечить полный контекст для понимания более подробных описаний процессов, иллюстрируемых и описываемых в связи с фиг. 3, 5 и 6.
Фиг. 2 представляет блок-схему способа инициирования и проведения сеанса связи мультимодального приложения, в соответствии с примерным вариантом осуществления. Способ может начинаться, в блоке 202, когда клиентское устройство принимает индикацию того, что сеанс связи мультимодального приложения должен быть инициирован. В различных вариантах осуществления сеанс связи мультимодального приложения может быть инициирован экземпляром компонента приложения на стороне клиента (например, клиентской частью приложения отображения) и/или клиентского браузера. Например, пользователь клиентского устройства может инициировать экземпляр компонента приложения на стороне клиента, который адаптирован так, чтобы воспроизводить, либо отдельно, либо в связи с клиентским браузером, визуальное отображение, которое включает в себя по меньшей мере один элемент отображения, для которого могут быть введены данные с использованием визуальной модальности или голосовой модальности. В качестве альтернативы, пользователь может инициировать экземпляр клиентского браузера и может указывать, для клиентского браузера, желание пользователя для браузера, чтобы обратиться или загрузить мультимодальную страницу, которая, при интерпретировании, заставляет клиентское устройство воспроизводить визуальное отображение. Например, пользователь может обеспечивать вводы пользователя так, чтобы передвигаться к мультимодальной странице.
Когда клиентское устройство принимает индикацию того, что сеанс связи мультимодального приложения должен быть инициирован, сеанс связи мультимодального приложения инициируется, в блоке 204, через взаимодействие между клиентским устройством, сервером приложений и голосовым сервером, как будет описано более подробно в связи с фиг. 3. Инициализация сеанса связи мультимодального приложения включает в себя установление тракта звуковых данных (например, тракта 124 звуковых данных VS/клиента, фиг. 1) между клиентским устройством и голосовым сервером, через который будет производиться обменен звуковыми данными во время сеанса связи мультимодального приложения. Кроме того, и в варианте осуществления, инициализация сеанса связи мультимодального приложения включает в себя обмен информацией между клиентским устройством и сервером приложений по первому тракту управления между клиентским устройством и сервером приложений (например, по тракту 120 управления AS/клиента, фиг. 1), и обмен информации между сервером приложений и голосовым сервером по второму тракту управления между сервером приложений и голосовым сервером (например, по тракту 122 управления AS/VS, фиг. 1).
Как будет описано более подробно в связи с фиг. 5 и 6, во время сеанса связи мультимодального приложения будет производиться обмен звуковыми данными между клиентским устройством и голосовым сервером по тракту звуковых данных, и будет производиться обмен информацией управления между клиентским устройством, сервером приложений и голосовым сервером по первому и второму трактам управления. Информация управления дает возможность последовательно поддерживать синхронизацию между состояниями визуального представления и голосового представления на протяжении всего сеанса связи.
В ответ на события, генерируемые голосовым сервером и клиентским устройством, производится обмен звуковыми данными и информацией управления между различными системными объектами, и эти события упоминаются, соответственно, как "генерируемые VS события" и "генерируемые клиентом события". Генерируемые VS события и генерируемые клиентом события могут воздействовать на состояния голосового представления и/или визуального представления. Генерируемые VS события и генерируемые клиентом события могут происходить в различные моменты времени, когда проводится сеанс связи мультимодального приложения. Как будет описано более подробно в связи с фиг. 5, когда происходит генерируемое VS событие, в блоке 206 выполняется процесс манипулирования генерируемым VS событием. Кроме того, как будет описано более подробно в связи с фиг. 6, когда происходит генерируемое клиентом событие, в блоке 208 выполняется процесс манипулирования генерируемым клиентом событием. Хотя блоки 206 и 208 иллюстрируются как происходящие последовательно, эти процессы также могут происходить параллельно или в противоположной последовательности, и, в то время как проводится сеанс связи мультимодального приложения, любой или оба процесса могут происходить множество раз. До тех пор, пока сеанс связи мультимодального приложения не закончен, как изображено блоком 210, процессы манипулирования генерируемыми VS событиями и генерируемыми клиентом событиями продолжают выполняться, как проиллюстрировано на фиг. 2.
Фиг. 3 представляет блок-схему способа выполнения инициирования сеанса связи мультимодального приложения (например, процесса 204, фиг. 2) в соответствии с примерным вариантом осуществления. Как предварительно было описано в связи с процессом 202 на фиг. 2, в варианте осуществления сеанс связи мультимодального приложения может быть инициирован, когда клиентское устройство принимает индикацию того, что сеанс связи мультимодального приложения должен быть инициирован. Например, сеанс связи мультимодального приложения может быть инициирован, когда пользователь инициирует компонент приложения на стороне клиента или браузер, адаптированный так, чтобы интерпретировать или выполнять машинный код, заставляющий клиентское устройство воспроизводить один или более элементов отображения, для которых могут быть введены данные с использованием визуальной модальности, голосовой модальности или их обеих. В варианте осуществления сеанс связи мультимодального приложения может быть инициирован, когда пользователь инициирует компонент приложения на стороне клиента или браузер, адаптированный так, чтобы интерпретировать мультимодальную страницу, и/или когда пользователь выбирает гипертекстовые связи с мультимодальной страницей среди других действий.
В блоке 302 клиентское устройство посылает по тракту управления AS/клиента (например, по тракту 120 управления AS/клиента, фиг. 1) одно или более управляющих сообщений на сервер приложений, которые включают в себя информацию о тракте звуковых данных клиента, где информация о тракте звуковых данных клиента определяет описательные характеристики, относящиеся к тракту звуковых данных (например, к тракту 124 звуковых данных VS/клиента, фиг. 1), который клиентское устройство хотело бы установить с голосовым сервером. Например, информация о тракте звуковых данных клиента может включать в себя, но не ограничиваясь этим, информацию, описывающую формат (форматы) звуковых данных, скорость (скорости) передачи данных и/или тип (типы) звуковых данных, поддерживаемые компонентом приложения на стороне клиента и/или клиентским браузером, желательный звуковой кодек (кодеки) и/или информацию об адресе звуковых данных на стороне клиента, такую как IP-адрес клиентского устройства и номер порта, подлежащий использованию для звуковых данных, загружаемых на клиентское устройство по тракту звуковых данных во время сеанса связи мультимодального приложения (упоминаемых в данном описании как "звуковые данные нисходящей линии связи"). В другом варианте осуществления, до отправки информации о тракте звуковых данных клиента на сервер приложений, клиентское устройство может посылать сообщение об инициировании приложения на сервер приложений по тракту управления AS/клиента. Сообщение об инициировании приложения может включать в себя, например, идентификатор приложения, мандат клиента и/или другую информацию.
В блоке 304 сервер приложений принимает информацию о тракте звуковых данных клиента, посланную клиентским устройством, и инициирует установление тракта звуковых данных (например, тракта 124 звуковых данных VS/клиента, фиг. 1) между клиентским устройством и голосовым сервером. В варианте осуществления это включает в себя сервер приложений, устанавливающий тракт управления AS/VS (например, тракт 122 управления AS/VS, фиг. 1) с голосовым сервером. Затем сервер приложений посылает, по тракту управления AS/VS, одно или более управляющих сообщений в голосовой сервер, которые включают в себя некоторую часть или всю информацию о тракте звуковых данных клиента.
В блоке 306 голосовой сервер принимает и сохраняет информацию о тракте звуковых данных клиента, посланную сервером приложений. Затем голосовой сервер посылает, по тракту управления AS/VS, одно или более управляющих сообщений на сервер приложений, которые включают в себя информацию о тракте звуковых данных VS. В варианте осуществления информация о тракте звуковых данных VS определяет дополнительные описательные характеристики, относящиеся к тракту звуковых данных VS/клиента. Например, информация о тракте звуковых данных VS может включать в себя, но не ограничиваясь этим, формат (форматы) звуковых данных, скорость (скорости) передачи данных и/или тип (типы) звуковых данных, поддерживаемые голосовым сервером, желательный звуковой кодек (кодеки) и/или информацию об адресе звуковых данных на стороне VS, такую как IP-адрес голосового сервера и номер порта, подлежащий использованию для звуковых данных, загружаемых в голосовой сервер по тракту звуковых данных VS/клиента во время сеанса связи мультимодального приложения (упоминаемые в данном описании как "звуковые данные восходящей линии связи").
В блоке 308 сервер приложений принимает информацию о тракте звуковых данных VS, посылаемую голосовым сервером. Затем сервер приложений посылает, по тракту управления AS/клиента, одно или более управляющих сообщений на клиентское устройство, которые включают в себя некоторую часть или всю информацию о тракте звуковых данных VS. В блоке 310 клиентское устройство принимает и сохраняет информацию о тракте звуковых данных VS, посланную сервером приложений. На этой стадии и клиентское устройство, и голосовой сервер имеют знание относительно IP-адреса и порта, на который следует посылать друг другу звуковые данные. Другими словами, голосовой сервер знает, на который адрес посылать звуковые данные нисходящей линии связи, а клиентское устройство знает, на который адрес посылать звуковые данные восходящей линии связи. Соответственно, на этой стадии устанавливается двунаправленный тракт звуковых данных между голосовым сервером и клиентским устройством. В альтернативном варианте осуществления, между голосовым сервером и клиентским устройством может быть установлен односторонний тракт звуковых данных. Например, может быть установлен тракт звуковых данных, в котором посылаются только звуковые данные восходящей линии связи от клиентского устройства на голосовой сервер, когда информация о тракте звуковых данных клиента для голосового сервера может не обеспечиваться. В другом варианте осуществления может быть установлен канал в режиме "нажал - говори" (PTT), который дает возможность в любое данное время посылать звуковые данные по тракту звуковых данных VS/клиента либо клиентскому устройству, либо голосовому серверу.
В блоке 312 клиентское устройство посылает управляющее сообщение на сервер приложений, по тракту управления AS/клиента, которое включает в себя информацию о мультимодальном приложении. В варианте осуществления информация о мультимодальном приложении включает в себя информацию, которая идентифицирует мультимодальное приложение, которое клиентское устройство готовится выполнять. В другом варианте осуществления, информация о мультимодальном приложении включает в себя ссылку (например, унифицированный указатель информационного ресурса (URL)) по меньшей мере для одной мультимодальной страницы (например, для мультимодальной страницы 115, фиг. 1) и/или по меньшей мере для одного речевого диалога (например, для речевого диалога 136, фиг. 1), связанного с мультимодальным приложением, которое клиентское устройство готовится выполнять.
В блоке 314 сервер приложений принимает информацию о мультимодальном приложении. Затем сервер приложений может определить, из информации о мультимодальном приложении, ссылки (например, указатели URL) по меньшей мере для одной мультимодальной страницы и по меньшей мере для одного речевого диалога. В варианте осуществления сервер приложений может затем посылать на голосовой сервер, по тракту управления AS/VS, ссылки (например, указатели URL) для речевого диалога. Голосовой сервер может затем загружать или обращаться к речевому диалогу (речевым диалогам), соответствующему ссылкам (ссылкам). В альтернативном варианте осуществления сервер приложений может выбирать речевой диалог (речевые диалоги), основываясь на ссылке (ссылках), и может посылать речевой диалог (речевые диалоги) на голосовой сервер по тракту управления AS/VS. Кроме того, сервер приложений может выбирать и посылать, по тракту управления AS/клиента, мультимодальную страницу (страницы) на клиентское устройство.
В блоке 316 клиентское устройство принимает и инициирует интерпретирование мультимодальной страницы и воспроизводит визуальную разметку, включенную в мультимодальную страницу на клиентском устройстве. Например, клиентский браузер или компонент приложения на стороне клиента может интерпретировать визуальную разметку, включенную в мультимодальную страницу, и может отображать один или более элементов страницы на устройстве отображения, связанном с клиентским устройством, в соответствии с визуальной разметкой.
Фиг. 4 представляет пример визуальной разметки, воспроизводимой на клиентском устройстве 400, в соответствии с примерным вариантом осуществления. В иллюстрируемом примере часть визуальной разметки воспроизведена в форме четырех мультимодальных элементов 401, 402, 403, 404 отображения, каждый из которых включает в себя текстовую метку (например, "ГОРОД", "ШТАТ", "НОМЕР ДОМА НА УЛИЦЕ" и "НАЗВАНИЕ УЛИЦЫ") и поле ввода данных.
Обращаясь снова к фиг. 3, отметим, что в блоке 318 клиентское устройство посылает управляющее сообщение, по тракту управления AS/клиента, которое указывает, что клиентское устройство инициировало интерпретирование мультимодальной страницы (например, клиентское устройство инициировало выполнение мультимодального приложения) и/или инициировало выполнение другого машинного кода, связанного с мультимодальным сеансом связи. На этой стадии визуальное представление находится в исходном состоянии. В этом исходном состоянии визуального представления клиентское устройство может ожидать приема и оцифровывания звукового сигнала, соответствующего речи, и отправки звуковых данных восходящей линии связи по тракту звуковых данных VS/клиента на голосовой сервер, соответствующих оцифрованному звуковому сигналу. Кроме того или в качестве альтернативы, в исходном состоянии визуального представления, клиентское устройство может ожидать приема дополнительных управляющих сообщений от сервера приложений, и/или звуковых данных нисходящей линии связи от голосового сервера по тракту звуковых данных VS/клиента, и воспроизводить звуковые данные нисходящей линии связи, используя устройство вывода звукового сигнала (например, динамик, наушники или головной телефон), связанное с клиентским устройством.
В блоке 320 сервер приложений принимает управляющее сообщение, указывающее, что клиентское устройство инициировало интерпретирование мультимодальной страницы или другого машинного кода, связанного с сеансом связи мультимодального приложения, и сервер приложений посылает управляющее сообщение на голосовой сервер, по тракту управления AS/VS, которое дает команду голосовому серверу начинать интерпретирование речевого диалога. Тогда, в блоке 322, голосовой сервер начинает интерпретировать речевой диалог. На этой стадии звуковое представление находится в исходном состоянии, которое синхронизировано с исходным состоянием визуального представления. В исходном состоянии голосового представления голосовой сервер может ожидать приема дополнительных управляющих сообщений от сервера приложений, и/или в нем он может ожидать приема звуковых данных восходящей линии связи от клиентского устройства по тракту звуковых данных VS/клиента.
Затем процесс инициализации и запуска сеанса связи мультимодального приложения завершается. На этой стадии визуальное представление находится в первом состоянии, в котором клиентское устройство достигло позиции, в своем интерпретировании машинного кода, связанной с мультимодальным сеансом связи (например, мультимодальной страницей и/или компонентом приложения на стороне клиента), в которой он ожидает ввода от пользователя через визуальную модальность или голосовую модальность, или в которой он ожидает звуковые данные нисходящей линии связи от голосового сервера. Кроме того, звуковое представление находится в первом состоянии, в котором голосовой сервер достиг позиции, в своем интерпретировании машинного кода, связанной с мультимодальным сеансом связи (например, речевого диалога), в которой он ожидает ввода управляющего сигнала от сервера приложений, или в котором он ожидает звуковые данные восходящей линии связи от клиентского устройства.
Фиг. 3 иллюстрирует конкретный вариант осуществления способа выполнения инициирования сеанса связи мультимодального приложения. Как и с другими способами, описанными в данном описании (например, на фиг. 5 и 6), иллюстрируемая последовательность процессов может отличаться от той, которая иллюстрируется и описывается в других вариантах осуществления, некоторые процессы и/или сообщения могут быть объединены вместе, и/или некоторые процессы или сообщения могут быть совершенно исключены. Например, в альтернативном варианте осуществления способа выполнения инициирования сеанса связи мультимодального приложения, этапы 302 и 312 на фиг. 3 могут быть объединены вместе (например, клиентское устройство может посылать информацию о тракте звуковых данных на голосовой сервер наряду с информацией о мультимодальном приложении). В других альтернативных вариантах осуществления весь или части процесса 314 могут быть исключены, например, такие, как когда клиентское устройство и/или голосовой сервер уже загрузил машинный код, связанный сеансом связи мультимодального приложения (например, делая загрузку машинного кода ненужной). В еще одном, другом альтернативном варианте осуществления клиентское устройство и голосовой сервер могут связываться непосредственно, чтобы устанавливать тракт звуковых данных VS/клиента (например, клиентское устройство может инициировать участок вызова к голосовому серверу, и тракт звуковых данных VS/клиента может быть установлен с помощью идентификатора сеанса связи, который посылается на сервер приложений).
Как предварительно обсуждалось в связи с блоками 206 и 208 на фиг. 2, после инициирования сеанса связи мультимодального приложения могут происходить по меньшей мере два типа событий, которые могут воздействовать на состояния голосового представления и/или визуального представления. Эти типы событий включают в себя генерируемое VS событие и генерируемое клиентом событие. Фиг. 5 и 6 иллюстрируют варианты осуществления процесса манипулирования генерируемым VS событием и процесса манипулирования генерируемым клиентом событием, соответственно.
Фиг. 5 представляет блок-схему способа выполнения процесса манипулирования генерируемым VS событием (например, процесса 206, фиг. 2), в соответствии с примерным вариантом осуществления. Термин "генерируемое VS событие" может быть определен как событие, которое происходит на голосовом сервере и которое может служить основанием изменения состояния для голосового представления. Например, различные генерируемые VS события могут включать в себя, но не ограничиваясь этим, событие распознавания речи, событие простоя и загрузки или обращение к другому звуковому диалогу, помимо всего прочего.
В варианте осуществления способ может начинаться, в блоке 502, когда клиентское устройство принимает, через свой пользовательский интерфейс, сигнал, который может представлять фрагмент активной речи пользователя (например, речь пользователя). Затем клиентское устройство может отцифровывать и обрабатывать сигнал так, чтобы генерировать звуковые данные восходящей линии связи, которые представляют сигнал, и может посылать звуковые данные восходящей линии связи на голосовой сервер по тракту звуковых данных (например, по тракту 124 звуковых данных VS/клиента, фиг. 1). Речь пользователя может соответствовать единственному элементу отображения (например, речь может быть фрагментом активной речи "Иллинойс", соответствующим элементу 402 отображения, фиг. 4) или более чем одному элементу отображения (например, речь может быть фрагментом активной речи "Чикаго, Иллинойс", соответствующим элементам 401 и 402 отображения). В различных вариантах осуществления тракт звуковых данных может быть установлен через сеть с пакетной коммутацией или сеть с коммутацией каналов. В варианте осуществления, в котором тракт звуковых данных установлен через сеть с пакетной коммутацией, клиентское устройство пакетирует звуковые данные и посылает звуковые данные в одном или более сообщениях, которые адресованы для IP-адреса голосового сервера и порта, которые клиентское устройство приняло во время процесса инициирования сеанса связи мультимодального приложения (например, процесса фиг. 3).
В блоке 504 голосовой сервер принимает звуковые данные восходящей линии связи. В ответ на прием звуковых данных восходящей линии связи голосовой сервер может выполнять процесс распознавания речи, в котором голосовой сервер пытается распознать речь (например, фрагмент активной речи), представленную звуковыми данными восходящей линии связи. В варианте осуществления это включает в себя обработку звуковых данных восходящей линии связи с помощью программы распознавания речи (например, программы 134 распознавания речи, фиг. 1). В варианте осуществления программа распознавания речи может обращаться к ресурсу распознавания речи, связанному с текущим состоянием голосового представления, где ресурс распознавания речи может включать в себя данные, связанные с набором фрагментов активной речи, которые связаны с текущим состоянием голосового представления. Например, обращаясь снова к фиг. 4, отметим, что поле ввода данных для первого элемента 401 отображения было заполнено данными "ЧИКАГО" (например, для элемента отображения "ГОРОД"). Курсор показан в поле ввода данных для второго элемента 402 отображения (то есть для элемента отображения "ШТАТ"), который указывает текущее фокусирование визуального представления, или состояние визуального представления. Когда визуальное представление и звуковое представление синхронизированы, состояние голосового представления будет соответствовать голосовому серверу, ожидающему приема звуковых данных, соответствующих фрагменту активной речи пользователя с названием штата. Поскольку существует конечное множество названий штатов, надежность программы распознавания речи может быть усовершенствована, когда программа распознавания речи обращается к ресурсу распознавания речи, связанному с набором фрагментов активной речи, соответствующим конечному множеству названий штатов. Ресурс распознавания речи может быть адаптирован так, чтобы распознавать речь с множеством различных произношений названий штатов и/или репрезентативных данных для охватываемых и охватывающих речевых характеристик, среди других переменных.
В блоке 506 делается определение, распознана ли речь. Когда голосовой сервер не способен коррелировать звуковые данные восходящей линии связи с распознаваемой речью (например, звуковые данные не соответствуют никакому единственному названию штата в пределах допустимой погрешности), голосовой сервер может определить, что речь не была распознана. В таком случае, в блоке 508, голосовой сервер может послать управляющее сообщение на сервер приложений, по тракту управления AS/VS, которое указывает, что произошла ошибка распознавания речи. В блоке 510 сервер приложений тогда может послать управляющее сообщение на клиентское устройство, по тракту управления AS/клиента, которое указывает на ошибку. При приеме индикации ошибки клиентское устройство может воспроизводить сообщение об ошибке, в блоке 511, которое указывает пользователю, что вводимая речь пользователя не была распознана. Клиентское устройство может воспроизвести сообщение об ошибке, в различных вариантах осуществления, как звуковую подсказку и/или как сообщение, отображенное на визуальном дисплее. Затем клиентское устройство может подсказать пользователю повторно ввести данные или может выполнить некоторое другое действие (или не выполнять никакого действия), и способ может быть закончен.
Обращаясь снова к блоку 506, отметим, что когда голосовой сервер определяет, что звуковые данные восходящей линии связи соответствуют распознанной речи (например, звуковые данные соответствуют распознанному названию штата), голосовой сервер может генерировать событие распознавания (например, генерируемое VS событие), в блоке 512, и может послать управляющее сообщение на сервер приложений, по тракту управления AS/VS, которое информирует сервер приложений о событии распознавания. В варианте осуществления событие распознавания включает в себя индикацию того, что речь была распознана (например, бинарное значение), и результат распознавания речи, который может включать в себя индикацию распознанной речи (например, индикацию распознанного названия штата). В альтернативном варианте осуществления событие распознавания также может включать в себя один или более дополнительных результатов распознавания речи, и, возможно, индикацию интенсивности корреляции для каждого из результатов распознавания речи (например, индикацию вероятностей того, что каждый результат является правильным результатом). Индикация распознанной речи может включать в себя, в различных вариантах осуществления, текстовое представление распознанной речи, индекс для таблицы возможных результатов распознавания (например, таблицы, перечисляющей названия штатов) или некоторый другой тип индикатора. В блоке 514 сервер приложений может затем послать управляющее сообщение на клиентское устройство, по тракту управления AS/клиента, которое включает в себя информацию, включенную или полученную из управляющего сообщения, принятого от голосового сервера (например, сообщение, которое указывает событие распознавания). Например, управляющее сообщение также может включать в себя индикацию того, что речь была распознана, и результат распознавания речи (например, индикацию распознанной речи).
Хотя в варианте осуществления прием и распознавание звуковых данных могут приводить в действие голосовой сервер так, чтобы произвести генерируемое VS событие, в других вариантах осуществления другие условия также могут приводить в действие голосовой сервер так, чтобы производить генерируемое VS событие. В качестве примера, но не посредством ограничения, когда звуковое представление находится в состоянии, в котором оно ожидает звуковые данные, подлежащие приему, голосовой сервер может производить генерируемое VS событие, когда звуковые данные не принимаются в течение предварительно определенного периода времени простоя. В таком случае отправка управляющего сообщения VS-к-AS в блоке 512 может информировать сервер приложений о другом типе события, и отправка управляющего сообщения AS-к-клиенту в блоке 514, в свою очередь, может информировать клиентское устройство о другом типе события. Клиентское устройство может принимать меры в соответствии с типом события. Хотя другие типы генерируемых VS событий в данном описании подробно не обсуждаются, объем вариантов осуществления предназначен для того, чтобы включать в себя другие типы генерируемых VS события.
При отправке сервером приложений управляющего сообщения на клиентское устройство, в блоке 514, клиентское устройство в блоке 516 принимает управляющее сообщение и обрабатывает результат распознавания речи. Кроме того, клиентское устройство обновляет визуальное отображение в соответствии с результатом распознавания речи и посылает управляющее сообщение на сервер приложений, по тракту управления AS/клиента, чтобы указать, что обновление завершено и/или что клиентское устройство готово принять другое сообщение, указывающее генерируемое VS событие. Например, если результат распознавания речи передан в некоторой форме, отличающейся от текстового представления распознанной речи, клиентское устройство может определять текстовое представление (например, клиентское устройство может отыскивать текстовое представление, когда результат распознавания речи идентифицирует элемент в таблице). Обращаясь снова к фиг. 4, отметим, например, что если результат распознавания речи обработан как текст "ИЛЛИНОЙС", в поле ввода данных для второго элемента 402 отображения клиентское устройство может отобразить "ИЛЛИНОЙС". Когда результат распознавания соответствует более чем одному элементу отображения, клиентское устройство может отображать данные более чем в одном соответствующем поле ввода данных (например, когда результат распознавания указывает распознанную речь "Чикаго" и "Иллинойс", клиентское устройство может отображать "ЧИКАГО" в элементе 401 отображения, если это уже не отображено, и может отобразить "ИЛЛИНОЙС" в элементе 402 отображения). Кроме того, клиентское устройство автоматически (например, без дополнительного взаимодействия с пользователем) может изменять фокусирование визуального представления, перемещая курсор к полю ввода данных для третьего элемента 403 отображения. В контексте изменения фокусирования, клиентское устройство может проводить изменение состояния для визуального представления, завершая свое интерпретирование разметки, связанной со вторым элементом 402 отображения, и инициируя интерпретирование разметки, связанной с третьим элементом 403 отображения.
Обращаясь снова к фиг. 5, отметим, что в блоке 518 клиентское устройство определяет, произошло ли изменение состояния для визуального представления. Например, изменение состояния может происходить, когда было изменено фокусирование визуального представления, как описано в предыдущем параграфе. Если изменение состояния не происходит, способ может заканчиваться. Когда происходит изменение состояния, в блоке 520, клиентское устройство посылает управляющее сообщение на сервер приложений, по тракту управления AS/клиента, указывающее, что произошло изменение состояния. В альтернативных вариантах осуществления информация в управляющем сообщении, посылаемая в блоке 520, может быть объединена с информацией в управляющем сообщении, посылаемом в блоке 516, и/или сервер приложений могут выводить любой элемент информации, основываясь на приеме другого элемента информации (другими словами, когда сервер приложений принимает индикацию относительно завершения обновления, он может делать вывод о том, что произошло изменение состояния, или наоборот).
В блоке 522 сервер приложений принимает информацию, указывающую, что произошло изменение состояния, и посылает управляющее сообщение на голосовой сервер, по тракту управления AS/VS, которое включает в себя информацию, заставляющую голосовой сервер инициировать изменение состояния для голосового представления. Например, в варианте осуществления информация в управляющем сообщении может быть командой от сервера приложений для голосового сервера, чтобы провести изменение состояния звукового представления. В другом варианте осуществления информация в управляющем сообщении может быть индикацией того, что произошло изменение состояния визуального представления, и голосовой сервер может определять, соответственно, провести изменение состояния звукового представления или нет.
В блоке 524 голосовой сервер принимает управляющее сообщение от сервера приложений и, в ответ, проводит изменение состояния звукового представления. Кроме того, голосовой сервер может посылать управляющее сообщение на сервер приложений, по тракту управления AS/VS, которое указывает, что произошло изменение состояния. Например, обращаясь снова к фиг. 4, отметим, что голосовой сервер может завершить свое интерпретирование машинного кода, связанного с ожиданием звуковых данных, относящихся ко второму элементу 402 отображения, и может инициировать интерпретирование машинного кода, связанного с ожиданием звуковых данных для третьего элемента 403 отображения, и/или машинного кода, связанного с отправкой звуковых данных нисходящей линии связи (например, звуковой подсказки) на клиентское устройство, по тракту звуковых данных VS/клиента.
Когда сделано определение, в блоке 526, что текущее состояние голосового представления включает в себя отправку на клиентское устройство звуковой подсказки, тогда в блоке 528 голосовой сервер посылает соответствующую звуковую подсказку на клиентское устройство, как звуковые данные нисходящей линии связи, по тракту звуковых данных VS/клиента. Например, когда фокусирование было изменено на третий элемент 403 отображения, машинный код, связанный с третьим элементом 403 отображения, может заставить голосовой сервер послать звуковую подсказку на клиентское устройство, по тракту звуковых данных VS/клиента, которая включает в себя звуковые данные, соответствующие фразе "Пожалуйста, скажите название улицы", или некоторую подобную звуковую подсказку. При приеме звуковых данных клиентское устройство может воспроизвести звуковую подсказку, например, с помощью выведения и слышимого сигнала, соответствующего подсказке, на устройстве вывода звукового сигнала клиентского устройства. Затем способ фиг. 5 может быть закончен.
Варианты осуществления способа, иллюстрируемого на фиг. 5, принадлежат процессам, выполняемым, когда происходит генерируемое VS событие, которое может воздействовать на состояния любого из визуального представления и звукового представления, или их обоих. Как предварительно обсуждалось, клиентское устройство также может генерировать событие, которое может воздействовать на состояния визуального представления и/или голосового представления. При таком событии, в варианте осуществления, выполняется процесс манипулирования генерируемым клиентом событием.
Фиг. 6 представляет блок-схему способа выполнения процесса манипулирования генерируемым клиентом событием (например, процесса 208, фиг. 2) в соответствии с примерным вариантом осуществления. Термин "генерируемое клиентом событие" может быть определен как событие, которое происходит на клиентском устройстве, которое может служить основанием изменения состояния для визуального представления. Например, различные генерируемые клиентом события могут включать в себя, но не ограничиваясь этим, изменение фокусирования визуального представления, ввод данных с использованием клавиатуры и загрузку или обращение к другой мультимодальной странице, помимо всего прочего.
В варианте осуществления способ может начинаться, в блоке 602, когда клиентское устройство принимает, через свою визуальную модальность, ввод пользователя, который может служить основанием изменения состояния для визуального представления и/или обновления визуального отображения. Например, пользователь может использовать механизм прокрутки или указания клиентского устройства, чтобы выбрать элемент отображения и/или поле ввода данных, которое отличается от того, на котором в настоящее время сфокусировано визуальное представление. В качестве другого примера, пользователь может вызывать ввод текста в поле ввода данных, на котором в настоящее время сфокусировано визуальное представление, например, используя клавишную панель, и может указывать завершение включения информации в поле данных, например, нажимая клавишу "ВВОД" (например, клавишу "ВВОД" 406, фиг. 4) или обеспечивая некоторую другую индикацию. В качестве еще одного примера, пользователь может заставлять клиентское устройство запрашивать или обращаться к другой мультимодальной странице, например, указывая перемещение к другой мультимодальной странице через пользовательский интерфейс, или представляя информацию, включенную в текущую страницу, например, нажимая клавишу "ПОДАТЬ ДАННЫЕ" (например, клавишу 408 "ПОДАТЬ ДАННЫЕ", фиг. 4), или обеспечивая некоторую другую индикацию.
Когда клиентское устройство принимает ввод пользователя, который может служить основанием обновления визуального отображения и/или изменения состояния визуального представления, клиентское устройство может генерировать генерируемое клиентом событие, в блоке 604, и может посылать управляющее сообщение на сервер приложений, по тракту управления AS/клиента, которое информирует сервер приложений о генерируемом клиентом событии. В варианте осуществления генерируемое клиентом событие включает в себя индикацию относительно типа события (например, ввод текста, изменение фокусирования, изменение мультимодальной страницы) и индикацию относительно подробностей события. Например, обращаясь также к фиг. 4, отметим, что когда клиентское устройство приняло ввод текста "ИЛЛИНОЙС" для поля 402 ввода данных, управляющее сообщение может указывать тип ввода текста события и может включать в себя индикацию введенного текста "ИЛЛИНОЙС". Индикация введенного текста, в различных вариантах осуществления, может включать в себя текстовое представление введенных данных, индекс в таблице допустимых вводов (например, в таблице, перечисляющей названия штатов) или некоторый другой тип индикатора. В качестве другого примера, когда клиентское устройство приняло ввод пользователя, чтобы изменить фокусирование на поле 404 ввода данных, управляющее сообщение может указывать тип изменения фокусирования события (например, индикацию изменения от текущего фокусирования на поле 403 ввода данных к другому фокусированию на поле 404 ввода данных) и может включать в себя информацию, идентифицирующую поле 404 ввода данных.
В блоке 606 сервер приложений принимает управляющее сообщение от клиентского устройства и обрабатывает управляющее сообщение, как описано ниже. В блоке 608 сервер приложений генерирует и посылает ответное управляющее сообщение на клиентское устройство, по тракту управления AS/клиента, которое может включать в себя информацию, чтобы заставить клиентское устройство обновить визуальное отображение и/или изменить визуальное представление на другое состояние. Например, когда генерируемое клиентом событие указывает ввод текста (например, пользователь ввел "ИЛЛИНОЙС" на клавишной панели и выбрал "ВВОД"), управляющее сообщение может дать команду клиентскому устройству изменить состояние визуального представления, чтобы соответствовать последующему полю ввода данных, если такое имеется, и/или может дать команду клиентскому устройству обновить визуальное отображение, перемещая курсор в последующее поле ввода данных (например, выполнить изменение фокусирования). В варианте осуществления, если генерируемое клиентом событие указывает, что клиент ввел текст в последнее поле ввода данных, управляющее сообщение может дать команду клиенту выполнить некоторое другое действие (например, инициировать картографирование введенной информации или, например, перемещение к новой странице). Когда генерируемое клиентом событие указывает изменение фокусирования без ввода текста, управляющее сообщение может дать команду клиентскому устройству изменить состояние визуального представления, чтобы соответствовать выбранному пользователем элементу отображения (который не обязательно является последующим элементом), и/или может дать команду клиентскому устройству обновить визуальное отображение, перемещая курсор в поле ввода данных, соответствующее выбранному пользователем элементу отображения.
В блоке 610 клиентское устройство принимает управляющее сообщение от сервера приложений и отвечает соответствующим образом. Например, клиентское устройство может обновить визуальное отображение, перемещая курсор, и/или может изменить состояние визуального представления так, чтобы соответствовать элементу отображения, на котором визуальное отображение в настоящее время должно быть сфокусировано. Например, обращаясь также к фиг. 4, отметим, что когда сервер приложений указал для клиентского устройства, что клиентское устройство должно обновить визуальное отображение и изменить состояние визуального представления, клиент может реагировать, обновляя визуальное отображение и изменяя состояние визуального представления, как указано командой. Например, если клиентское устройство получило команду изменить фокусирование визуального представления на элемент 403 отображения, клиентское устройство может проводить изменение состояния для визуального представления, завершая свое интерпретирование машинного кода, связанного со вторым элементом 402 отображения (например, ожидания ввода пользователя через визуальную модальность или голосовую модальность для второго элемента 402 отображения, и/или ожидания звуковой подсказки от голосового сервера), и инициируя интерпретирование машинного кода, связанного с третьим элементом 403 отображения (например, ожидания ввода пользователя через визуальную модальность или голосовую модальность для третьего элемента 403 отображения, и/или ожидания звуковой подсказки от голосового сервера).
Параллельно, до или после блоков 608 и 610, сервер приложений может посылать управляющее сообщение на голосовой сервер, по тракту управления AS/VS, в блоке 612, которое указывает генерируемое клиентом событие посредством включения информации, включенной или получаемой из управляющего сообщения, которое сервер приложений принял от клиентского устройства в блоке 606. Например, управляющее сообщение также может включать в себя индикацию типа генерируемого клиентом события и индикации подробностей события, как предварительно было описано.
В блоке 614 голосовой сервер принимает управляющее сообщение от сервера приложений и обрабатывает сообщение, например, устанавливая одно или более значений, идентифицирующих звуковую подсказку, проводя изменение состояния звукового представления и/или загружая или обращаясь к другому речевому диалогу, соответственно. Например, обращаясь также к фиг. 4, отметим, что когда сервер приложений указал для голосового сервера, что клиентское устройство приняло ввод текста "ИЛЛИНОЙС" для поля 402 ввода данных и что фокусирование визуального отображения изменилось на ввод 403 данных, голосовой сервер может сохранять индикацию введенного текста для будущей ссылки (например, в определении ресурсов распознавания речи, чтобы использовать во время последующих процессов распознавания речи) и может изменять состояние голосового представления, подлежащего синхронизации с визуальным представлением. Например, если фокусирование визуального представления изменилось, голосовой сервер может проводить изменение состояния для голосового представления, завершая свое интерпретирование машинного кода, связанного со вторым элементом 402 отображения (например, ожидание звуковых данных, относящихся ко второму элементу 402 отображения, и/или генерирование звуковых подсказок для второго элемента 402 задержки (отображения)), и инициируя интерпретирование машинного кода, связанного с элементом отображения (например, с третьим элементом 403 отображения), на который было изменено фокусирование. Машинный код, связанный с элементом отображения, на который было изменено фокусирование, может включать в себя машинный код, связанный с ожиданием звуковых данных для этого элемента отображения, и/или машинный код, связанный с отправкой звуковых данных нисходящей линии связи на клиентское устройство, по тракту звуковых данных VS/клиента, которые могут включать в себя звуковую подсказку, связанную с этим элементом отображения.
Когда сделано определение, в блоке 616, что текущее состояние голосового представления включает в себя отправку звуковой подсказки на клиентское устройство, тогда, в блоке 618, голосовой сервер посылает соответствующую звуковую подсказку на клиентское устройство в виде звуковых данных нисходящей линии связи по тракту звуковых данных VS/клиента. Например, когда фокусирование было изменено на третий элемент 403 отображения, машинный код, связанный с третьим элементом 403 отображения, может заставлять голосовой сервер посылать звуковую подсказку на клиентское устройство, по тракту звуковых данных VS/клиента, которая включает в себя звуковые данные, соответствующие фразе "Пожалуйста, скажите название улицы", или некоторую подобную звуковую подсказку. При приеме звуковую данных клиентское устройство может воспроизвести звуковую подсказку, например, с помощью выведения и слышимого сигнала, соответствующего подсказке, на устройстве вывода звукового сигнала клиентского устройства. В варианте осуществления клиентское устройство не воспроизводит подсказку до тех пор, пока клиентское устройство не завершает блок 610. Затем способ фиг. 6 может закончиться.
Теперь выше описаны варианты осуществления способов и устройства для реализации распределенных мультимодальных приложений. Вышеизложенное подробное описание просто является примерным по своему характеру и не предназначено для ограничения обладающего признаками заявленного объекта или заявки и применения обладающего признаками заявленного объекта описанными вариантами осуществления. Кроме того, нет никакого намерения следовать какой-либо теории, представленной в предшествующих разделах предшествующего уровня техники или подробного описания.
Вариант осуществления способа, выполняемого сервером приложений, включает в себя этап приема по тракту управления сервера приложений/голосового сервера между сервером приложений и голосовым сервером, индикации от голосового сервера относительно того, что речь была распознана, на основании звуковых данных восходящей линии связи, посланных от клиентского устройства на голосовой сервер по тракту звуковых данных между клиентским устройством и голосовым сервером. Звуковые данные восходящей линии связи представляют собой аналоговый сигнал звуковой частоты, принимаемый через голосовую модальность клиентского устройства, и голосовой сервер является отдельным от сервера приложений. Способ также включает в себя этап отправки по тракту управления сервера приложений/клиента между сервером приложений и клиентским устройством сообщения на клиентское устройство, которое включает в себя результат распознавания для речи, и которое заставляет клиентское устройство обновлять визуальное отображение так, чтобы отражать результат распознавания.
Другой вариант осуществления способа, выполняемого клиентским устройством, включает в себя этап воспроизведения визуального отображения на основании интерпретации машинного кода, который заставляет клиентское устройство воспроизводить визуальное отображение, в котором визуальное отображение включает в себя по меньшей мере один элемент отображения, для которого входные данные подлежат приему клиентским устройством через визуальную модальность и голосовую модальность. Способ также включает в себя этапы приема речи через голосовую модальность, оцифровывания речи так, чтобы генерировать звуковые данные восходящей линии связи, соответствующие одному или более элементам отображения по меньшей мере одного элемента отображения, и отправки звуковых данных восходящей линии связи на голосовой сервер по тракту звуковых данных между клиентским устройством и голосовым сервером. Способ также включает в себя этап приема результата распознавания речи от сервера приложений по тракту управления сервера приложений/клиента между сервером приложений и клиентским устройством, где результат распознавания речи основан на голосовом сервере, выполняющем процесс распознавания речи на звуковых данных восходящей линии связи, причем тракт звуковых данных является отдельным от тракта управления сервера приложений/клиента, и голосовой сервер является отдельным от сервера приложений. Способ также включает в себя обновление одного или более элементов отображения визуального отображения в соответствии с результатом распознавания речи.
Вариант осуществления системы включает в себя клиентское устройство, голосовой сервер и сервер приложений. Клиентское устройство адаптировано так, чтобы отображать по меньшей мере один элемент отображения, для которого входные данные подлежат приему через визуальную модальность и голосовую модальность, и, когда входные данные принимаются через голосовую модальность в виде речи, посылать звуковые данные восходящей линии связи, представляющие речь, на голосовой сервер по тракту звуковых данных между клиентским устройством и голосовым сервером. Голосовой сервер адаптирован так, чтобы определять на основании звуковых данных восходящей линии связи, распознана ли речь, и, когда речь распознана, посылать индикацию того, что речь распознана, на сервер приложений по тракту управления сервера приложений/голосового сервера между сервером приложений и голосовым сервером. Сервер приложений адаптирован так, чтобы принимать индикацию того, что речь была распознана, и на основании индикации посылать результат распознавания речи на клиентское устройство по тракту управления сервера приложений/клиента между сервером приложений и клиентским устройством, где тракт управления сервера приложений/клиента является отдельным от тракта звуковых данных.
Последовательность текста в любом из пунктов формулы изобретения не подразумевает, что этапы процесса должны быть выполнены во временном или логическом порядке в соответствии с такой последовательностью, если это специально не определено языком формулы изобретения. Этапы процесса могут переставляться в любом порядке, и/или могут выполняться параллельно, не выходя при этом за рамки объема обладающего признаками изобретения объекта. Кроме того, должно быть понятно, что информация в различных отличающихся сообщениях, которые описаны выше, как обмениваемые между системными элементами, может быть объединена вместе в единственные сообщения, и/или информация в конкретном сообщении может быть разделена на множество сообщений. Кроме того, сообщения могут посылаться системными элементами в последовательностях, которые отличаются от последовательностей, описанных выше. Помимо этого, такие слова как "подключенный" или "подсоединенный к", используемые в описании взаимосвязи между различными элементами, не подразумевают, что между этими элементами должно быть сделано прямое физическое подключение. Например, два элемента могут быть подсоединены друг к другу физически, с помощью электроники, логически или любым другим способом, через один или более дополнительных элементов, не выходя при этом за рамки объема обладающего признаками изобретения объекта.
Специалистам в данной области техники должно быть понятно, что информация и сигналы могут быть представлены с использованием любых из ряда различных технологий и способов. Например, данные, инструкции, команды, информация, сигналы, биты, символы и кодовые элементы, которые могут упоминаться на протяжении всего вышеупомянутого описания, могут быть представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами, или любой их комбинацией.
Специалисты в данной области техники дополнительно могут оценить, что различные иллюстративные логические блоки, модули, схемы и этапы алгоритма, описанные в связи с вариантами осуществления, раскрытыми в данном описании, могут быть реализованы в виде электронного аппаратного обеспечения, программного обеспечения или комбинаций их обоих. Чтобы ясно проиллюстрировать эту взаимозаменяемость аппаратного обеспечения и программного обеспечения, различные иллюстративные компоненты, блоки, модули, схемы и этапы были описаны выше в общем в терминах их функциональных возможностей. Реализованы ли такие функциональные возможности как аппаратное обеспечение или программное обеспечение, зависит от конкретного применения и конструктивных ограничений, накладываемых на всю систему. Квалифицированные специалисты смогут реализовать описанные функциональные возможности различными способами для каждого конкретного применения, но такие решения выполнения не должны интерпретироваться как вызывающие отклонения от объема обладающего признаками изобретения объекта.
Различные иллюстративные логические блоки и модули, описанные в связи с раскрытыми в данном описании вариантами осуществления, могут быть реализованы или выполнены с помощью процессора общего назначения, процессора цифровых сигналов (ПЦС), интегральной схемы прикладной ориентации (ASIC), программируемой пользователем вентильной матрицы (FPGA) или другого программируемого логического устройства, дискретного логического элемента или транзисторных логических схем, дискретных аппаратных компонентов или любой их комбинации, предназначенной для выполнения функций, описанных в данном описании. Процессор общего назначения может быть микропроцессором, но, в качестве альтернативы, процессор может быть любым общепринятым процессором, контроллером, микроконтроллером или конечным автоматом. Процессор также может быть реализован в виде комбинации вычислительных устройств, таких как комбинация ПЦС и микропроцессора, множества микропроцессоров, одного или более микропроцессоров в связи с ядром ПЦС или любой другой такой конфигурации.
Этапы способа или алгоритма, описанные в связи с раскрытыми в данном описании вариантами осуществления, могут быть воплощены непосредственно в аппаратном обеспечении, в одном или более модулях программного обеспечения, выполняемых процессором, или в комбинации и того, и другого. Модуль программного обеспечения может постоянно находиться в оперативном запоминающем устройстве, флэш-памяти, постоянном запоминающем устройстве (ПЗУ), стираемом программируемом ПЗУ (СППЗУ), электрически стираемом ППЗУ (ЭСППЗУ), регистрах, жестком диске, съемном диске, ПЗУ компакт-дисков (CD-ROM) или в любой другой форме носителя данных, известной в технике. Примерный носитель данных подсоединен к процессору так, что процессор может считывать информацию с носителя данных и записывать на него информацию. В качестве альтернативы, носитель данных может быть объединен с процессором. Процессор и носитель данных могут постоянно находиться в ASIC. ASIC может постоянно находиться в терминале пользователя. В качестве альтернативы, процессор и носитель данных могут постоянно находиться в виде дискретных компонентов в терминале пользователя.
Хотя в вышеизложенном подробном описании был представлен по меньшей мере один примерный вариант осуществления, должно быть понятно, что существует большое количество вариаций. Также следует оценить, что примерный вариант осуществления или примерные варианты осуществления представляют собой только примеры, и не предназначены для того, чтобы каким-либо образом ограничивать объем, применимость или конфигурацию обладающего признаками изобретения объекта. Скорее, вышеизложенное подробное описание обеспечит специалистов в данной области техники удобной картой последовательности операций для реализации примерного варианта осуществления обладающего признаками изобретения объекта, а также следует понимать, что могут быть сделаны различные изменения в функционировании и компоновке элементов, описанных в примерном варианте осуществления, не выходя при этом за рамки объема обладающего признаками изобретения объекта, как сформулировано в прилагаемой формуле изобретения и ее правовых эквивалентах.
Изобретение относится к распределенным приложениям и, более конкретно, к распределенным мультимодальным приложениям, реализуемым в системной среде "клиент - сервер". Техническим результатом является повышение надежности синхронизации за счет использования стандартных протоколов при проектировании "тонких" клиентов. Способ содержит этапы, на которых: принимают, по тракту управления сервера приложений/голосового сервера между сервером приложений и голосовым сервером, от голосового сервера индикацию относительно того, что речь была распознана на основе звуковых данных восходящей линии связи, посланных от клиентского устройства на голосовой сервер по тракту звуковых данных между клиентским устройством и голосовым сервером, причем звуковые данные восходящей линии связи представляют фрагмент активной речи пользователя, принятый через голосовую модальность клиентского устройства, при этом голосовой сервер является отдельным от сервера приложений, и отправляют, по тракту управления сервера приложений/клиента между сервером приложений и клиентским устройством, на клиентское устройство сообщение, которое включает в себя результат распознавания для речи и которое предписывает клиентскому устройству обновлять визуальное отображение так, чтобы отразить результат распознавания. 3 н. и 17 з.п. ф-лы, 6 ил.
1. Способ реализации распределенных мультимодальных приложений, выполняемый сервером приложений, причем способ содержит этапы, на которых:
принимают по тракту управления сервера приложений/голосового сервера между сервером приложений и голосовым сервером от голосового сервера индикацию относительно того, что речь была распознана на основе звуковых данных восходящей линии связи, посланных от клиентского устройства на голосовой сервер по тракту звуковых данных между клиентским устройством и голосовым сервером, причем звуковые данные восходящей линии связи представляют фрагмент активной речи пользователя, принятый через голосовую модальность клиентского устройства, при этом голосовой сервер является отдельным от сервера приложений, и
отправляют по тракту управления сервера приложений/клиента между сервером приложений и клиентским устройством на клиентское устройство сообщение, которое включает в себя результат распознавания для речи и которое предписывает клиентскому устройству обновлять визуальное отображение так, чтобы отразить результат распознавания.
2. Способ по п.1, дополнительно содержащий этап, на котором устанавливают тракт звуковых данных посредством того, что:
принимают информацию о тракте звуковых данных клиента от клиентского устройства по тракту управления сервера приложений/клиента, причем информация о тракте звуковых данных клиента включает в себя информацию об адресе для голосового сервера, чтобы посылать звуковые данные нисходящей линии связи на клиентское устройство по тракту звуковых данных,
принимают информацию о тракте звуковых данных голосового сервера от голосового сервера по тракту управления сервера приложений/голосового сервера, причем информация о тракте звуковых данных голосового сервера включает в себя информацию об адресе для клиентского устройства, чтобы посылать звуковые данные восходящей линии связи на голосовой сервер по тракту звуковых данных,
отправляют информацию о тракте звуковых данных клиента на голосовой сервер по тракту управления сервера приложений/голосового сервера, и
отправляют информацию о тракте звуковых данных голосового сервера на клиентское устройство по тракту управления сервера приложений/клиента.
3. Способ по п.1, дополнительно содержащий этап, на котором отправляют мультимодальную страницу на клиентское устройство по тракту управления сервера приложений/клиента, при этом мультимодальная страница при ее интерпретации предписывает клиентскому устройству воспроизводить визуальное отображение, которое включает в себя по меньшей мере один элемент отображения, для которого входные данные являются принимаемыми клиентским устройством через визуальную модальность и голосовую модальность.
4. Способ по п.1, дополнительно содержащий этап, на котором отправляют ссылку на речевой диалог на голосовой сервер по тракту управления сервера приложений/голосового сервера.
5. Способ по п.1, дополнительно содержащий этап, на котором отправляют речевой диалог на голосовой сервер по тракту управления сервера приложений/голосового сервера.
6. Способ по п,1, дополнительно содержащий этапы, на которых:
принимают от клиентского устройства по тракту управления сервера приложений/клиента индикацию относительно того, что клиентское устройство инициировало интерпретирование машинного кода, который предписывает клиентскому устройству воспроизводить визуальное отображение, которое включает в себя по меньшей мере один элемент отображения, для которого входные данные являются принимаемыми клиентским устройством через визуальную модальность и голосовую модальность, и
отправляют команду на голосовой сервер по тракту управления сервера приложений/голосового сервера для того, чтобы голосовой сервер начинал интерпретировать речевой диалог, связанный с машинным кодом, интерпретируемым клиентским устройством.
7. Способ по п.1, дополнительно содержащий этапы, на которых:
принимают от клиентского устройства по тракту управления сервера приложений/клиента индикацию относительно того, что клиентское устройство обновило визуальное отображение в соответствии с результатом распознавания, и
отправляют сообщение на голосовой сервер по тракту управления сервера приложений/голосового сервера, чтобы указать, что клиентское устройство обновило визуальное отображение.
8. Способ по п.1, дополнительно содержащий этапы, на которых:
принимают от клиентского устройства по тракту управления сервера приложений/клиента индикацию относительно того, что текущее фокусирование в пределах визуального отображения, воспроизводимого на клиентском устройстве, изменено на другое фокусирование, причем это другое фокусирование указывает элемент отображения визуального отображения, для которого входные данные в настоящее время являются принимаемыми клиентским устройством через визуальную модальность и голосовую модальность, и
отправляют на голосовой сервер по тракту управления сервера приложений/голосового сервера сообщение, которое включает в себя информацию, которая предпишет голосовому серверу выполнять машинный код, соответствующий упомянутому другому фокусированию.
9. Способ по п.1, дополнительно содержащий этапы, на которых:
принимают от клиентского устройства по тракту управления сервера приложений/клиента индикацию относительно того, что произошло сгенерированное клиентом событие, которое служит основанием обновления визуального отображения, воспроизводимого на клиентском устройстве,
отправляют информацию на клиентское устройство по тракту управления сервера приложений/клиента, чтобы предписать клиентскому устройству обновить визуальное отображение, основываясь на сгенерированном клиентом событии, и
отправляют на голосовой сервер по тракту управления сервера приложений/голосового сервера команду, которая включает в себя информацию, указывающую сгенерированное клиентом событие.
10. Способ реализации распределенных мультимодальных приложений, выполняемый клиентским устройством, причем способ содержит этапы, на которых:
воспроизводят визуальное отображение, основываясь на интерпретации машинного кода, который предписывает клиентскому устройству воспроизводить визуальное отображение, при этом визуальное отображение включает в себя по меньшей мере один элемент отображения, для которого входные данные являются принимаемыми клиентским устройством через визуальную модальность и голосовую модальность;
принимают сигнал, представляющий фрагмент активной речи пользователя, через голосовую модальность;
оцифровывают этот сигнал так, чтобы генерировать звуковые данные восходящей линии связи, соответствующие одному или более элементам отображения из упомянутого по меньшей мере одного элемента отображения;
отправляют звуковые данные восходящей линии связи на голосовой сервер по тракту звуковых данных между клиентским устройством и голосовым сервером;
принимают результат распознавания речи от сервера приложений по тракту управления сервера приложений/клиента между сервером приложений и клиентским устройством, причем результат распознавания речи основан на выполнении голосовым сервером процесса распознавания речи в отношении звуковых данных восходящей линии связи, причем тракт звуковых данных является отдельным от тракта управления сервера приложений/клиента, и при этом голосовой сервер является отдельным от сервера приложений; и
обновляют упомянутые один или более элементов отображения визуального отображения в соответствии с результатом распознавания речи.
11. Способ по п.10, дополнительно содержащий этап, на котором принимают мультимодальную страницу от сервера приложений по тракту управления сервера приложений/клиента, при этом мультимодальная страница включает в себя машинный код, причем воспроизведение визуального отображения выполняется посредством интерпретирования машинного кода в форме разметки в мультимодальной странице.
12. Способ по п.10, дополнительно содержащий этапы, на которых:
принимают звуковые данные нисходящей линии связи от голосового сервера по тракту звуковых данных, при этом звуковые данные нисходящей линии связи включают в себя звуковую подсказку; и
воспроизводят звуковую подсказку на устройстве вывода звукового сигнала из состава клиентского устройства.
13. Способ по п.10, дополнительно содержащий этапы, на которых:
отправляют информацию о тракте звуковых данных клиента на сервер приложений по тракту управления сервера приложений/клиента, при этом информация о тракте звуковых данных клиента включает в себя информацию об адресе для голосового сервера, чтобы посылать звуковые данные нисходящей линии связи на клиентское устройство по тракту звуковых данных; и
принимают информацию о тракте звуковых данных голосового сервера от сервера приложений по тракту управления сервера приложений/клиента, при этом информация о тракте звуковых данных голосового сервера включает в себя информацию об адресе для клиентского устройства, чтобы посылать звуковые данные восходящей линии связи на голосовой сервер по тракту звуковых данных.
14. Способ по п.10, дополнительно содержащий этап, на котором:
принимают ввод пользователя, который служит основанием обновления визуального отображения, воспроизводимого на клиентском устройстве;
основываясь на приеме ввода пользователя, отправляют на сервер приложений по тракту управления сервера приложений/клиента индикацию относительно того, что произошло сгенерированное клиентом событие, и
принимают от сервера приложений по тракту управления сервера приложений/клиента информацию, которая предписывает клиентскому устройству обновлять визуальное отображение, основываясь на сгенерированном клиентом событии.
15. Способ по п.14, в котором при приеме ввода пользователя принимают индикацию того, что пользователь выбрал другой элемент отображения, который отличается от элемента отображения, на котором в настоящее время сфокусировано визуальное представление.
16. Способ по п.10, дополнительно содержащий этап, на котором принимают индикацию того, что пользователь ввел текст в поле ввода данных для одного или более элементов отображения, используя клавишную панель клиентского устройства.
17. Система для реализации распределенных мультимодальных приложений, содержащая
клиентское устройство, выполненное с возможностью отображать по меньшей мере один элемент отображения, для которого входные данные являются принимаемыми через визуальную модальность и голосовую модальность и, когда входные данные принимаются через голосовую модальность в виде речи, посылать звуковые данные восходящей линии связи, представляющие речь, на голосовой сервер по тракту звуковых данных между клиентским устройством и голосовым сервером;
голосовой сервер, выполненный с возможностью определять на основе звуковых данных восходящей линии связи, распознана ли речь, и, когда речь распознана, посылать индикацию того, что речь распознана, на сервер приложений по тракту управления сервера приложений/голосового сервера между сервером приложений и голосовым сервером; и
сервер приложений, выполненный с возможностью принимать индикацию того, что речь распознана, и на основе индикации посылать результат распознавания речи на клиентское устройство по тракту управления сервера приложений/клиента между сервером приложений и клиентским устройством, при этом тракт управления сервера приложений/клиента является отдельным от тракта звуковых данных.
18. Система по п.17, в которой сервер приложений дополнительно выполнен с возможностью принимать первую информацию о тракте звуковых данных от клиентского устройства по тракту управления сервера приложений/клиента и принимать вторую информацию о тракте звуковых данных от голосового сервера по тракту управления сервера приложений/голосового сервера, при этом первая информация о тракте звуковых данных включает в себя адрес межсетевого протокола (IP) клиента, подлежащий использованию для отправки звуковых данных нисходящей линии связи на клиентское устройство от голосового сервера по тракту звуковых данных, при этом вторая информация о тракте звуковых данных включает в себя IP-адрес голосового сервера, подлежащий использованию для отправки звуковых данных восходящей линии связи на голосовой сервер от клиентского устройства по тракту звуковых данных, при этом сервер приложений дополнительно выполнен с возможностью инициировать установление тракта звуковых данных, посылая первую информацию о тракте звуковых данных на голосовой сервер по тракту управления сервера приложений/голосового сервера и посылая вторую информацию о тракте звуковых данных на клиентское устройство по тракту управления сервера приложений/клиента.
19. Система по п.17, в которой клиентское устройство представляет собой устройство, выбираемое из группы устройств, которая включает в себя телефон для сотовой связи, рацию, пейджер, персональный цифровой помощник, персональное навигационное устройство, портативную компьютерную систему, автомобильную компьютерную систему, самолетную компьютерную систему, компьютер, дорожный компьютер, портативный компьютер, настольный компьютер и реализованный в компьютере телефон для передачи голоса по межсетевому протоколу (VoIP).
20. Система по п.17, в которой сервер приложений и голосовой сервер являются отдельными друг от друга в том, что сервер приложений и голосовой сервер выполняют отдельные процессы и обмениваются управляющими сообщениями, которые воздействуют на выполнение этих отдельных процессов, по тракту управления сервера приложений/голосового сервера.
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
Способ и приспособление для нагревания хлебопекарных камер | 1923 |
|
SU2003A1 |
Топчак-трактор для канатной вспашки | 1923 |
|
SU2002A1 |
RU 2006102661 A, 10.08.2007. |
Авторы
Даты
2013-08-27—Публикация
2008-12-19—Подача