основанные на языке разметки выбор и использование распознавателей для обработки произнесения
Классы МПК: | G10L15/00 Распознавание речи |
Автор(ы): | КРУМЕЛ Эндрю К. (US), МАССЕ Пьер-Александр Ф. (US), РУФФ Джозеф А. (US) |
Патентообладатель(и): | МАЙКРОСОФТ КОРПОРЕЙШН (US) |
Приоритеты: |
подача заявки:
2009-12-11 публикация патента:
10.08.2014 |
Изобретение относится к способу использования распознавателей для обработки произнесения на основании документа на языке разметки. Технический результат заключается в ускорении процесса распознавания. Принимают документ на языке разметки и произнесение в вычислительном устройстве. Выбирают один или более распознавателей из числа распознавателей для возврата набора результатов для произнесения на основании языка разметки в документе на языке разметки. Распознают грамматику, используемую в произнесении. Производят синтаксический разбор документа в поисках по меньшей мере одного тэга языка разметки. Принимают набор результатов от одного или более выбранных распознавателей в формате, определенном способом обработки, заданным в документе на языке разметки. Объединяют набор результатов с по меньшей мере одним ранее принятым набором результатов для создания множества наборов результатов. 3 н. и 12 з.п. ф-лы, 5 ил.
Формула изобретения
1. Реализованный компьютером способ (300) для использования множества распознавателей (40, 72) для обработки произнесения (42) на основании документа (44) на языке разметки, содержащий этапы:
прием (305) документа (44) на языке разметки;
прием (310) произнесения (42);
выбор (325) по меньшей мере одного из множества распознавателей (40, 72) для возврата в клиентское устройство (2) набора результатов (46) для произнесения (42) на основании языка разметки (90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 109, 110, 111, 112) в документе (44) на языке разметки;
прием (335) набора результатов (46) от выбранного по меньшей мере одного из множества распознавателей (40, 72) в формате, определенном способом обработки (355), заданным в документе (44) на языке разметки; и
выполнение (340) события (38) в ответ на прием набора результатов (46), причем событие содержит определение действий в ответ на прием набора результатов, причем упомянутые действия основаны на по меньшей мере назначенном показателе конфиденциальности, указывающем точность распознавания речи для произнесения, при этом действия содержат игнорирование набора результатов, когда набор результатов содержит необработанные результаты для произнесения и показатель конфиденциальности ниже заранее определенного порога, а также действия содержат препятствование тому, чтобы набор результатов был отображен пользователю.
2. Способ по п.1, дополнительно содержащий:
посылку данных версии для по меньшей мере одного из множества распознавателей с первого вычислительного устройства на второе вычислительное устройство; и
если данные версии идентифицируют обновленную версию для по меньшей мере одного из множества распознавателей, то прием дополнительного языка разметки от второго вычислительного устройства в первом вычислительном устройстве, причем дополнительный язык разметки содержит инструкции для использования недавно добавленных функциональных особенностей в обновленной версии.
3. Способ по п.1, в котором выбор по меньшей мере одного из множества распознавателей для возврата результата для произнесения на основании языка разметки в документе на языке разметки содержит:
распознавание грамматики, используемой в произнесении;
синтаксический разбор документа на языке разметки в поисках по меньшей мере одного тэга языка разметки, идентифицирующего по меньшей мере один из множества распознавателей для возврата набора результатов для произнесения, на основании грамматики; и
выбор по меньшей мере одного из множества распознавателей, идентифицированных упомянутым по меньшей мере одним тэгом языка разметки.
4. Способ по п.1, в котором прием набора результатов от выбранного по меньшей мере одного из множества распознавателей в формате, определенном способом обработки, заданным в документе на языке разметки, содержит прием набора результатов в по меньшей мере одном из формата необработанных результатов и формата обработанных результатов, при этом формат необработанных результатов содержит один или более терминов, содержащих речевое распознавание произнесения, и в котором формат обработанных результатов содержит речевое распознавание одного или более терминов, ассоциированных с этим произнесением.
5. Способ по п.1, в котором выполнение события в ответ на прием набора результатов дополнительно содержит определение действия в ответ на прием набора результатов, в котором действие основано на по меньшей мере одном из: количества результатов в наборе результатов, коде возврата для набора результатов, и заранее определенных значений, возвращенных в наборе результатов, и в котором действие дополнительно содержит по меньшей мере одно из: отображения набора результатов пользователю, выполнения активизированной голосом функции вызова номера на основании набора результатов, и объединения набора результатов с по меньшей мере одним ранее принятым набором результатов, чтобы создать множество наборов результатов.
6. Система для использования множества распознавателей (40, 72) для обработки произнесения (42) на основании документа (44) на языке разметки, причем система содержит клиентское вычислительное устройство (2), причем клиентское вычислительное устройство (2) содержит:
память (12) для хранения выполняемого программного кода; и
процессор (8), функционально подсоединенный к памяти (12), причем процессор (8) реагирует на выполняемые компьютером инструкции, содержащиеся в программном коде, и служащие для того, чтобы:
принимать (305) документ (44) на языке разметки;
принимать (310) произнесение (42);
выбирать (325) по меньшей мере один из множества распознавателей (40, 72) для возврата в клиентское устройство (2) набора результатов (46) для произнесения (42) на основании языка разметки (90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 109, 110, 111, 112) в документе (44) на языке разметки;
принимать (335) набор результатов (46) от выбранного по меньшей мере одного из множества распознавателей (40, 72) в формате, определенном способом обработки (355), заданным в документе (44) на языке разметки; и
выполнять (340) событие (38) в ответ на прием набора результатов (46), причем событие содержит определение действий в ответ на прием набора результатов, причем упомянутые действия основаны на по меньшей мере назначенном показателе конфиденциальности, указывающем точность распознавания речи для произнесения, при этом действия содержат игнорирование набора результатов, когда набор результатов содержит необработанные результаты для произнесения и показатель конфиденциальности ниже заранее определенного порога, а также действия содержат препятствование тому, чтобы набор результатов был отображен пользователю.
7. Система по п.6, в которой процессор дополнительно служит для:
определения, доступна ли обновленная версия для по меньшей мере одного из множества распознавателей; и
если обновленная версия доступна для по меньшей мере одного из множества распознавателей, приема обновленного документа на языке разметки, содержащего дополнительный язык разметки для обращения с недавно добавленными функциональными особенностями в обновленной версии.
8. Система по п.6, в которой процессор при выборе по меньшей мере одного из множества распознавателей для возврата набора результатов для произнесения на основании языка разметки в документе на языке разметки дополнительно служит для:
распознавания грамматики, используемой в произнесении;
синтаксического разбора документа на языке разметки в поисках по меньшей мере одного тэга языка разметки, идентифицирующего по меньшей мере один из множества распознавателей, для возврата набора результатов для произнесения на основании грамматики; и
выбора по меньшей мере одного из множества распознавателей, идентифицированных упомянутым по меньшей мере одним тэгом на языке разметки.
9. Система по п.8, в которой процессор дополнительно служит для того, чтобы послать произнесение в выбранный по меньшей мере один из множества распознавателей.
10. Система по п.6, в которой набор результатов от выбранного по меньшей мере одного из множества распознавателей принимается в формате, определенном способом обработки, заданным в документе на языке разметки, при этом формат содержит по меньшей мере одно из: формата необработанных результатов и формата обработанных результатов, причем формат необработанных результатов содержит один или более терминов, содержащих речевое распознавание произнесения, и в котором формат обработанных результатов содержит один или более терминов, ассоциированных с речевым распознаванием произнесения.
11. Система по п.6, в которой процессор, при выполнении события в ответ на прием набора результатов, служит для того, чтобы определять действие в ответ на прием набора результатов, при этом действие дополнительно основано на по меньшей мере одном из: количества результатов в наборе результатов, кода возврата для набора результатов, и заранее определенных значений, возвращенных в наборе результатов, и при этом действие дополнительно содержит по меньшей мере одно из: отображения набора результатов пользователю, выполнения активизированной голосом функции вызова номера на основании набора результатов, и объединения набора результатов по меньшей мере с одним ранее принятым набором результатов, чтобы создать множество наборов результатов.
12. Считываемый компьютером носитель данных (14), содержащий выполняемые компьютером инструкции, которые при выполнении на компьютере (2) вынуждают компьютер (2) выполнять способ (300) для использования множества распознавателей (40, 72) для обработки произнесения (42) на основании документа (44) на языке разметки, содержащий этапы:
прием (305) документа (44) на языке разметки, причем прием документа на языке разметки содержит по меньшей мере одно из приема локально сохраненного документа (40) на языке разметки на клиентском вычислительном устройстве (2) и приема удаленно сохраненного документа (72) на языке разметки от сетевого сервера (70) на клиентском вычислительном устройстве (2),
прием (310) произнесения (42);
выбор (325) по меньшей мере одного из множества распознавателей (40, 72) для возврата в клиентское устройство (2) набора результатов (46) для произнесения (42) на основании языка разметки (90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 109, 110, 111, 112) в документе (44) на языке разметки, в котором выбор по меньшей мере одного из множества распознавателей для возврата набора результатов для произнесения на основании языка разметки в документе на языке разметки содержит:
распознавание (315) грамматики, используемой в произнесении (42);
синтаксический разбор (320) документа (44) на языке разметки в поисках по меньшей мере одного тэга (90) языка разметки, идентифицирующего по меньшей мере один из множества распознавателей (40, 72) для возврата набора результатов (46) для произнесения (42) на основании грамматики; и
выбор (325) по меньшей мере одного из множества распознавателей (40, 72), идентифицированных по меньшей мере одним тэгом (90) языка разметки;
потоковую передачу (330) произнесения (42) к выбранному по меньшей мере одному из множества распознавателей (40, 72);
прием (335) набора результатов (46) от выбранного по меньшей мере одного из множества распознавателей (40, 72) в формате, определенном способом обработки (355), заданным в документе (44) на языке разметки; и
выполнение (340) события (38) в ответ на прием набора результатов (46), причем событие содержит определение действий в ответ на прием набора результатов, причем упомянутые действия основаны на по меньшей мере назначенном показателе конфиденциальности, указывающем точность распознавания речи для произнесения, при этом действия содержат игнорирование набора результатов, когда набор результатов содержит необработанные результаты для произнесения и показатель конфиденциальности ниже заранее определенного порога, а также действия содержат препятствование тому, чтобы набор результатов был отображен пользователю.
13. Считываемый компьютером носитель данных по п.12, дополнительно содержащий:
определение, доступна ли обновленная версия для по меньшей мере одного из множества распознавателей; и
если обновленная версия доступна для по меньшей мере одного из множества распознавателей, прием обновленного документа на языке разметки, содержащего дополнительный язык разметки для обращения с недавно добавленными функциональными особенностями в обновленной версии.
14. Считываемый компьютером носитель данных по п.12, в котором прием набора результатов от выбранного по меньшей мере одного из множества распознавателей в формате, определенном способом обработки, заданным в документе на языке разметки, содержит прием набора результатов в по меньшей мере одном из формата необработанных результатов и формата обработанных результатов, в котором формат необработанных результатов содержит один или более терминов, содержащих речевое распознавание произнесения, и в котором формат обработанных результатов содержит речевое распознавание одного или более терминов, ассоциированных с произнесением.
15. Считываемый компьютером носитель данных по п.12, в котором выполнение события в ответ на прием набора результатов определяет действие в ответ на прием набора результатов, в котором действие дополнительно основано на по меньшей мере одном из: количестве результатов в наборе результатов, кода возвращения для набора результатов, и заранее определенных значений, возвращенных в наборе результатов, и в котором действие дополнительно содержит по меньшей мере одно из: отображения набора результатов пользователю, выполнения активированной голосом функции вызова номера на основании набора результатов, и объединения набора результатов по меньшей мере с одним ранее принятым набором результатов, чтобы создать множество наборов результатов.
Описание изобретения к патенту
УВЕДОМЛЕНИЕ ОБ АВТОРСКОМ ПРАВЕ
[0001] Часть раскрытия этого патентного документа содержит материал, который подлежит защите авторского права. Владелец авторского права не имеет возражений на факсимильное воспроизведение чего-либо из патентного документа или раскрытия патента, когда оно появляется в файле или записи в Ведомстве по патентам и товарным знакам, но в ином случае резервирует все авторские права любого рода.
УРОВЕНЬ ТЕХНИКИ
[0002] Мобильные вычислительные устройства используют способы распознавания речи, чтобы выполнять различные активированные голосом функции, такие как запросы информации и вызов номера. Из-за ограничений устройств хранения мобильных вычислительных устройств, чтобы выполнять всестороннее распознавание речи, могут потребоваться множественные "распознаватели", включая локальные или основанные на устройстве распознаватели (для обработки простых команд и простых запросов) и сетевые распознаватели (для обработки более сложных запросов, таких как те, которые требуют доступа к онлайн услугам). Однако современные мобильные вычислительные устройства ограничены для обработки запросов использованием только одного распознавателя или использованием локального и сетевого распознавателя последовательным способом, при этом результаты должны быть обработаны локальным распознавателем до посылки сетевому распознавателю для обработки результатов. Недостаток, связанный только с использованием локального распознавателя, состоит в том, что результаты ограничены простой командой и запросами управления (из-за ограничений хранения). Недостаток, связанный только с использованием сетевого распознавателя, является чрезмерным временем ожидания для приема результатов для простой команды и запросов управления. Недостаток с использованием локального и сетевого распознавателя последовательным способом состоит в том, что локальный распознаватель должен быть использован до сетевого распознавателя, даже когда локальный распознаватель не способен обеспечить достаточную обработку результатов. Именно относительно этих и других соображений различные варианты осуществления настоящего изобретения были сделаны.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0003] Этот раздел сущности изобретения представлен, чтобы ввести выбор понятий в упрощенной форме, которые далее описаны ниже в подробном описании. Этот раздел не предназначен, чтобы идентифицировать главные особенности или существенные признаки заявленного предмета изобретения, и при этом он не предназначен в качестве помощи при определении объема заявленного предмета изобретения.
[0004] Варианты осуществления предоставлены для выбора и использования множественных распознавателей для обработки произнесения на основании документа на языке разметки. Документ на языке разметки и произнесение принимаются в вычислительном устройстве. Один или более распознавателей могут быть выбраны из числа множественных распознавателей для возврата набора результатов для произнесения на основании языка разметки в документе на языке разметки. Набор результатов принимается от выбранного распознавателя или распознавателей в формате, определенном способом обработки, заданным в документе на языке разметки. Событие затем выполняется на вычислительном устройстве в ответ на прием набора результатов.
[0005] Эти и другие признаки и преимущества будут очевидны из нижеследующего подробного описания и обзора прилагаемых чертежей. Нужно подразумевать, что и предшествующее общее описание, и нижеследующее подробное описание являются только иллюстративными и не являются ограничительными для изобретения, как оно заявлено.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0006] Фиг.1 - блок-схема, иллюстрирующая архитектуру сети для выбора и использования множественных распознавателей для обработки произнесения на основании документа на языке разметки, в соответствии с различными вариантами осуществления;
[0007] Фиг.2 - блок-схема, иллюстрирующая клиентскую вычислительную среду, которая может быть использована для выбора и использования множественных распознавателей для обработки произнесения на основании документа на языке разметки, в соответствии с различными вариантами осуществления;
[0008] Фиг.3 - блок-схема, иллюстрирующая подпрограмму для выбора и использования множественных распознавателей для обработки произнесения на основании документа на языке разметки, в соответствии с различными вариантами осуществления;
[0009] Фиг.4 - блок-схема, иллюстрирующая последовательность этапов для использования обновленного распознавателя для обработки произнесения на основании документа на языке разметки, в соответствии с различными вариантами осуществления; и
[0010] Фиг.5 показывает документ на языке разметки, содержащий тэги, которые могут быть использованы для выбора из числа множественных распознавателей для обработки произнесения и обработки наборов результатов для произнесения, в соответствии с различными вариантами осуществления.
ПОДРОБНОЕ ОПИСАНИЕ
[0011] Варианты осуществления предоставлены для выбора и использования множественных распознавателей для обработки произнесения на основании документа на языке разметки. Документ на языке разметки и произнесение принимают в вычислительном устройстве. Один или более распознавателей могут быть выбраны из числа множественных распознавателей для возврата набора результатов для произнесения на основании языка разметки в документе на языке разметки. Набор результатов принимают от выбранного распознавателя или распознавателей в формате, определенном способом обработки, заданном в документе на языке разметки. Событие затем выполняется на вычислительном устройстве в ответ на прием набора результатов.
[0012] В нижеследующем подробном описании ссылки сделаны на сопроводительные чертежи, которые являются его частью, и на которых отображены посредством иллюстрации конкретные варианты осуществления или примеры. Эти варианты осуществления могут быть объединены, другие варианты осуществления могут быть использованы, и структурные изменения могут быть сделаны, не отступая от формы или объема настоящего изобретения. Нижеследующее подробное описание не должно поэтому быть истолковано в ограничивающем смысле, и объем настоящего изобретения определен приложенной формулой изобретения и ее эквивалентами.
[0013] Со ссылками на чертежи, на которых аналогичные цифры представляют аналогичные элементы на нескольких чертежах, описаны различные аспекты настоящего изобретения. Фиг.1 - блок-схема, иллюстрирующая архитектуру сети для выбора и использования множественных распознавателей для обработки произнесения на основании документа на языке разметки, в соответствии с различными вариантами осуществления. Архитектура сети включает в себя клиентское вычислительное устройство 2, находящееся в связи с сетевым сервером 70 по сети 4. Клиентское вычислительное устройство 2 может включать в себя серверные приложения 30 распознавания речи, приложение 38 обработчика событий, распознаватель 40, произнесение 42, документ 44 на языке разметки, наборы 46 результатов, интерфейсные приложения 50 устройства и служебные приложения 60 синхронизации. Нужно подразумевать, что в соответствии с различными вариантами осуществления распознаватель 40 может содержать один или более распознавателей. В соответствии с различными вариантами осуществления клиентское вычислительное устройство 2 может включать в себя мобильный или портативный компьютер или другой тип компьютера, способного к выполнению одной или более прикладных программ, включая, но не ограничиваясь, ноутбук, "смартфон" (то есть мобильный телефон, имеющий функциональные возможности компьютера и/или который способен управлять программным обеспечением операционной системы, чтобы обеспечить стандартизированный интерфейс и платформу для разработчиков приложения), и установленное на автомобиле вычислительное устройство.
[0014] Серверные приложения 30 распознавания речи в клиентском вычислительном устройстве 2 могут включать в себя различные продуктивные программные приложения, которые могут использовать распознавание речи, включая, но не ограничиваясь ими, поисковые машины (например, деловой (бизнес) поиск, поиск котировок акций, счет спортивных соревнований, времена начала кино, данные погоды, гороскопы, поиск документов), навигацию, активируемый голосом набор номера ("VAD"), установленное на автомобиле программное обеспечение (например, для включения и выключения радио, активирования режима стабилизации скорости, управления температурой, управления функциями отображения видео, воспроизведения "DVD"), функции управления устройством (например, выключение клиентского вычислительного устройства 2, запись примечания, удаление/создание/перемещение файлов), передачу сообщений (например, текст и MMS), носители (например, при фотографировании) и контент. В соответствии с различными вариантами осуществления (которые описаны более подробно при описании фиг.2-3) приложение 38 обработчика событий может быть использовано, чтобы принять произнесение 42 от клиентского вычислительного устройства 2 и обработать произнесение 42 в отношении грамматики. Очевидно, что произнесение 42 может содержать команду (такую, как вызов номера контакта из адресной книжки) или запрос информации пользователем служебных приложений 30 распознавания речи на клиентском вычислительном устройстве 2. Приложение 38 обработчика событий может быть также использовано, чтобы синтаксически разобрать документ 44 на языке разметки в поисках тэгов, которые задает распознаватель (то есть распознаватель 40 или распознаватель 72) на основании грамматики, используемой в произнесении 42, чтобы возвратить один или более результатов (то есть один или более наборов 46 результатов или наборов 76 результатов) в ответ на произнесение 42. В соответствии с вариантом осуществления распознаватель 40 может содержать отдельное приложение, которое может быть выполнено на клиентском вычислительном устройстве 2 для обработки результатов для произнесения 42. В соответствии с другим вариантом осуществления распознаватель 40 может быть встроен в операционную систему клиентского вычислительного устройства 2.
[0015] Интерфейсные приложения 50 устройства в клиентском вычислительном устройстве 2 могут включать в себя интерфейсы прикладного программирования ("API") для различных функций, которые могут быть выполнены клиентским вычислительным устройством 2, включая, но не ограничиваясь ими, функций генерирования пользовательского интерфейса, формирования сети, захвата аудио, распознавания речи, воспроизведения аудио, фотографирования, адресной книжки и глобальной системы определения местоположения ("GPS"). Служебное приложение 60 синхронизации в клиентском вычислительном устройстве 2 облегчает синхронизацию клиентского вычислительного устройства 2 с сетевым сервером 70.
[0016] Клиентское вычислительное устройство 2 может связываться с сетевым сервером 70 по сети 4, которая может включать в себя локальную сеть или глобальную сеть (например, Интернет). Сетевой сервер 70 может включать в себя распознаватель 72, документ 74 на языке разметки и наборы 76 результатов. Нужно подразумевать, что в соответствии с различными вариантами осуществления распознаватель 72 может содержать один или более распознавателей. В соответствии с вариантом осуществления сетевой сервер 70 может содержать множество вычислительных устройств в центре по сбору данных для приема произнесения 42 от клиентского вычислительного устройства 2 и для использования распознавателя 72 (в ответ на запрос от приложения 38 обработчика событий), чтобы определить и возвратить наборы 76 результатов клиентскому вычислительному устройству 2 в ответ на произнесение 42.
[0017] В соответствии с различными вариантами осуществления, и как описано более подробно ниже со ссылками на фиг.4, документ 74 на языке разметки может содержать версию документа 44 на языке разметки. Приложение 38 обработчика событий может быть сконфигурировано, чтобы сравнивать документ 44 на языке разметки на клиентском вычислительном устройстве 2 с документом 74 на языке разметки, и если документ 74 на языке разметки является обновленной версией (например, документ 74 на языке разметки может включать в себя дополнительный язык разметки для обработки недавно добавленных функциональных возможностей, которые могут быть использованы распознавателем 40), то документ 44 на языке разметки обновляется дополнительным языком разметки.
[0018] Множество вычислительных устройств (не показаны), содержащих сетевой сервер 70, могут включать в себя, но не ограничиваясь ими, шлюз приложений, сервер приложений, шлюз синхронизации и POD распознавания или устройство репликации. Специалисту понятно, что связь между множеством вычислительных устройств, содержащих сетевой сервер 70, и клиентским вычислительным устройством 2 может быть облегчена при помощи многих протоколов сети. Например, безопасная передача данных между клиентским вычислительным устройством 2 и шлюзом приложений может быть облегчена при помощи протокола управления передачей ("TCP") и Гипертекстового Протокола Передачи по Безопасному протоколу уровня сокетов ("HTTPS"). Связь между шлюзом приложений, сервером приложений и POD распознавания может быть облегчена при помощи Гипертекстового Протокола Передачи ("HTTP"). Вышеупомянутые протоколы известны специалистам и поэтому далее здесь не описаны. В соответствии с вариантом осуществления произнесение 42, принятое сетевым сервером 70, и наборы 76 результатов могут быть обработаны, используя способ HTTP POST (с аудио) (например, шлюзом приложений до посылки в POD распознавания и сервер приложений). Сетевой сервер 70 (например, через сервер приложений) может также преобразовать наборы 76 результатов в документ на языке разметки (то есть документ на языке разметки, независимый от документов 44 и 74 на языке разметки) до передачи наборов 76 результатов в клиентское вычислительное устройство 2 (в соответствии с этим вариантом осуществления приложение 38 обработчика событий может включать в себя интерпретатор языка разметки (не показан)) для обработки документа на языке разметки, содержащего наборы 76 результатов. В соответствии с вариантом осуществления наборы 76 результатов могут быть сжаты, используя один или более способов сжатия до передачи на клиентское вычислительное устройство 2. Примерами способов сжатия, которые могут быть использованы в различных вариантах осуществления, являются известные способы сжатия Wireless Application Protocol Binary Extensible Markup Language ("WBXML") и GNU zip ("GZIP").
Примерная операционная среда
[0019] Ссылаясь на фиг.2, нижеследующее описание предназначено, чтобы обеспечить краткое общее описание подходящей вычислительной среды, в которой могут быть реализованы различные иллюстративные варианты осуществления. В то время как различные варианты осуществления описаны в общем контексте программных модулей, которые выполняют совместно с программными модулями, которые работают на операционной системе на вычислительном устройстве, специалисты в данной области техники поймут, что различные варианты осуществления могут также быть реализованы в комбинации с другими типами программных модулей и компьютерных систем.
[0020] Обычно программные модули включают в себя подпрограммы, программы, компоненты, структуры данных, и другие типы структур, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Кроме того, специалисты в данной области техники поймут, что различные варианты осуществления могут быть осуществлены со многими конфигурациями компьютерной системы, включая переносные устройства, мультипроцессорные системы, основанную на микропроцессорах или программируемую бытовую электронику, мини-компьютеры, универсальные компьютеры и т.п. Различные варианты осуществления могут также быть осуществлены в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки, которые связаны через систему коммуникаций. В распределенной вычислительной среде программные модули могут быть расположены и в локальных, и в удаленных запоминающих устройствах памяти.
[0021] Фиг.2 показывает клиентское вычислительное устройство 2, которое может включать в себя мобильный или портативный компьютер или другой тип компьютера, способного выполнять одну или более прикладных программ, включая, но не ограничиваясь ими, ноутбук, "смартфон" (то есть мобильный телефон, имеющий функциональные возможности компьютера и/или который способен управлять программным обеспечением операционной системы, чтобы обеспечить стандартизированный интерфейс и платформу для разработчиков приложения), и установленное на автомобиле вычислительное устройство. Клиентское вычислительное устройство 2 включает в себя по меньшей мере один центральный процессор 8 ("центральный процессор"), системную память 12, включая память с произвольным доступом 18 ("RAM") и постоянное запоминающее устройство ("ROM") 20, и системную шину 10, которая подсоединяет память к центральному процессору 8. Базовая система ввода/вывода, содержащая основные подпрограммы, которые помогают передавать информацию между элементами в пределах компьютера, например, во время запуска, сохранена в ROM 20.
[0022] Клиентское вычислительное устройство 2 также включает в себя запоминающее устройство 14 большой емкости, чтобы хранить операционную систему 32, служебные приложения 30 распознавания речи, приложение 38 обработчика событий, распознаватель 40, произнесение 42, документ 44 на языке разметки, набор результатов 46, интерфейсные приложения 50 устройства, и приложения 60 синхронизации. Специалистам очевидно, что, в дополнение к реализации в качестве программного обеспечения, постоянно находящегося на запоминающем устройстве 14 большой емкости, распознаватель 40 также может быть реализован полностью в аппаратных средствах. Например, распознаватель 40 может быть реализован как БИС распознавания голоса на одной микросхеме CMOS, имеющей функции голосового анализа, процесса распознавания и управления системой.
[0023] В соответствии с различными вариантами осуществления операционная система 32 может быть подходящей для управления работой сетевого персонального компьютера, такой как операционные системы WINDOWS от MICROSOFT Corporation, Редмонд, шт. Вашингтон. Запоминающее устройство 14 большой емкости связано с центральным процессором 8 через контроллер запоминающего устройства большой емкости (не показан), соединенный с шиной 10. Запоминающее устройство 14 большой емкости и его ассоциированные считываемые компьютером носители предоставляет энергонезависимое запоминающее устройство клиентскому вычислительному устройству 2. Хотя описание считываемых компьютером носителей, содержащихся здесь, относится к запоминающему устройству большой емкости, такому как жесткий диск или дисковод для компакт-дисков, специалистам понятно, что считываемые компьютером носители могут быть любыми доступными носителями, к которым можно получить доступ или могут быть использованы клиентским вычислительным устройством 2. Посредством примера, а не ограничения, считываемые компьютером носители могут содержать компьютерные носители данных и коммуникационные носители.
[0024] Компьютерные носители данных включают в себя энергозависимые и энергонезависимые, сменные и несменные аппаратные носители данных, реализованные любым физическим способом или технологией для хранения информации, такой как считываемые компьютером инструкции, структуры данных, программные модули или другие данные. Компьютерные носители данных включают в себя, но не ограничены, RAM, ROM, стираемую программируемую постоянную память, EEPROM, флэш-память или твердотельную память другой технологии, CD-ROM, цифровые универсальные диски ("DVD"), или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, магнитное дисковое запоминающее устройство или другие магнитные устройства хранения, которые могут использоваться, чтобы хранить желательную информацию и к которым может получить доступ клиентское вычислительное устройство 2. Коммуникационные носители типично воплощают считываемые компьютером инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущая или другой транспортный механизм, и включают в себя любые носители доставки информации. Термин "модулированный сигнал данных" означает сигнал, который имеет одну или более из его характеристик, установленную или измененную таким образом, чтобы закодировать информацию в сигнале. Посредством примера, а не ограничения, коммуникационные носители включают в себя проводные носители, такие как проводная сеть или прямое проводное соединение, и беспроводные носители, такие как акустический, РЧ, инфракрасный и другие беспроводные носители. Комбинации любых из вышеупомянутого также должны быть включены в понятие считываемых компьютером носителей. Считываемые компьютером носители могут также упоминаться как компьютерный программный продукт.
[0025] Согласно различным вариантам осуществления изобретения, клиентское вычислительное устройство 2 может работать в сетевой среде, используя логические соединения с удаленными компьютерами через сеть 4, которая, как описано выше, может включать в себя локальную сеть или глобальную сеть (например, Интернет). Клиентское вычислительное устройство 2 может соединяться с сетью 4 через блок 16 сетевого интерфейса, связанный с шиной 10. Нужно понимать, что блок 16 сетевого интерфейса также может быть использован, чтобы соединяться с другими типами сетей и удаленных вычислительных систем. Клиентское вычислительное устройство 2 может также включать в себя контроллер 22 ввода/вывода для приема и обработки ввода от многих типов ввода, включая микрофон 80, а также клавиатуру, мышь, стилус, перо, палец, и/или другое средство (не показано). Аналогично, контроллер 22 ввода/вывода может обеспечить вывод на устройство отображения 82, а также принтер, или другой тип устройства вывода (не показано).
[0026] Фиг.3 - блок-схема, иллюстрирующая последовательность этапов 300 для выбора и использования множественных распознавателей для обработки произнесения на основании документа на языке разметки, в соответствии с различными вариантами осуществления. Читая описание последовательностей этапов, представленных здесь, нужно понимать, что логические операции различных вариантов осуществления настоящего изобретения реализованы (1) как последовательность реализованных компьютером действий или программных модулей, работающих на вычислительной системе и/или (2) как взаимосвязанные машинные логические схемы или схемные модули в вычислительной системе. Реализация является предметом выбора в зависимости от требований производительности вычислительной системы, реализующей изобретение. Соответственно, логические операции, проиллюстрированные на фиг.3-4 и составляющие различные варианты осуществления, описанные здесь, называются по-разному как операции, структурные устройства, действия или модули. Как понятно специалисту в данной области техники, эти операции, структурные устройства, действия и модули могут быть реализованы в программном обеспечении, в программно-аппаратных средствах, в специализированных цифровых логических схемах, и любой их комбинации, не отклоняясь от формы и объема настоящего изобретения, как указано в формуле изобретения, приложенной ниже.
[0027] Последовательность этапов 300 начинается на этапе 305, где документ на языке разметки (например, документ 44 на языке разметки) принимают клиентским вычислительным устройством 2. В одном варианте осуществления документ на языке разметки может быть принят через запрос, сделанный к сетевому серверу 70 приложением 38 обработчика событий.
[0028] От этапа 305 последовательность этапов 300 продолжается на этапе 307, где приложение 38 обработчика событий определяет, были ли обновлены какие-нибудь распознаватели, заданные в принятом документе 44 на языке разметки. Последовательность этапов для определения обновленных распознавателей описана более подробно ниже в описании фиг.4.
[0029] От этапа 307 последовательность этапов 300 переходит к этапу 310, где приложение 38 обработчика событий, выполняющееся на клиентском вычислительном устройстве 2, начинает принимать произнесение (например, произнесение 42) в виде потока от пользователя. Нужно подразумевать, что, в соответствии с различными вариантами осуществления, все произнесение 42 необязательно принимается от пользователя. В частности, произнесение 42 может быть передано в виде потока к приложению 38 обработчика событий для распознавания грамматики, когда пользователь говорит в клиентское вычислительное устройство 2. Например, пользователь клиентского вычислительного устройства 2 может использовать одно или более служебных приложений 40 распознавания речи вместе с приложением 38 обработчика событий, чтобы сделать произнесение, содержащее запрос контакта, для выполнения вызова с помощью активизируемого голосом набора номера или для определения местоположения коммерческого предприятия, информации трафика, направлений, информации о погоде, или информации кино, говоря в микрофон 80 (показанный на фиг.2).
[0030] От этапа 310 последовательность этапов 300 переходит к этапу 315, где приложение 38 обработчика событий распознает грамматику, используемую в произнесении 42, принятом на этапе 310. В частности, приложение 38 обработчика событий может быть сконфигурировано, чтобы выполнять речевую обработку, чтобы распознать грамматику (то есть слова), произнесенную в произнесении. В соответствии с вариантом осуществления приложение 38 обработчика событий может использовать распознанную грамматику вместе с документом 44 на языке разметки, чтобы определить распознаватель (то есть локальный распознаватель или сетевой распознаватель) для того, чтобы обеспечить результаты для произнесения.
[0031] От этапа 315 последовательность этапов 300 переходит к этапу 320, где приложение 38 обработчика событий синтаксически разбирает документ 44 на языке разметки в поисках тэга языка разметки, идентифицирующего распознаватель для обработки произнесения на основании грамматики, распознанной на этапе 315. В частности, приложение 38 обработчика событий может быть сконфигурировано, чтобы синтаксически разобрать язык разметки в документе 44 языка разметки в поисках тэга <gramma> языка разметки, который может идентифицировать локальное средство или сеть (например, с помощью унифицированного указателя ресурса ("URL")), откуда нужно извлечь сохраненную грамматику для сравнения с грамматикой, распознанной из произнесения 42 на этапе 315.
[0032] От этапа 320 последовательность этапов 300 переходит к этапу 325, где приложение 38 обработчика событий выбирает или локальный распознаватель (то есть распознаватель 40) или сетевой распознаватель (то есть распознаватель 72), идентифицированный тэгом языка разметки в документе 44 на языке разметки. В частности, приложение 38 обработчика событий может выбрать распознаватель, который ассоциирован с грамматикой, для возврата результатов для принятого произнесения 42. Например, если произнесение 42 содержит запрос активизированного голосом набора номера контакта, содержащегося в адресной книжке, сохраненной на клиентском вычислительном устройстве 2, приложение 38 обработчика событий может выбрать (локальный) распознаватель 40, который идентифицирован в документе 44 на языке разметки как ассоциированный с грамматикой, включающей контакты адресной книжки для клиентского вычислительного устройства 2. С другой стороны, если произнесение 42 содержит запрос локального делового поиска, приложение 38 обработчика событий может выбрать (сетевой) распознаватель 72, который идентифицирован в документе 44 на языке разметки как ассоциированный с грамматикой, включающей информацию делового (бизнес) поиска, которая может быть извлечена посредством запроса от сетевого сервера 70 на удаленный механизм web-поиска.
[0033] От этапа 325 последовательность этапов 300 переходит к этапу 330, на котором приложение 38 обработчика событий посылает или передает в виде потока произнесение 42 на выбранный распознаватель (например, распознаватель 40 или распознаватель 72). Как только произнесение 42 принято выбранным распознавателем, произнесение может быть обработано для результатов.
[0034] От этапа 330 последовательность этапов 300 переходит к этапу 335, где приложение 38 обработчика событий принимает один или более наборов результатов от выбранного распознавателя согласно формату, определенному в документе 44 на языке разметки. В частности, распознаватели 40 и 72 могут быть сконфигурированы, чтобы возвращать наборы результатов для произнесения 42 в необработанном или "сыром" формате или обработанном формате, в соответствии с различными вариантами осуществления. Необработанные результаты распознавателя могут включать в себя один или более терминов, содержащих речевое распознавание произнесения 42 распознавателем 40 или распознавателем 72. С другой стороны, обработанные результаты распознавателя могут включать в себя речевое распознавание одного или более терминов, ассоциированных с произнесением 42. Например, необработанные результаты для произнесения, содержащего термин "кофе", могут включать в себя термин «кофе» наряду со счетом (показателем) конфиденциальности, назначенным распознавателем, указывающим точность распознавания речи для этого произнесения (например, 80%). С другой стороны, обработанные результаты для произнесения, содержащего термин "кофе", могут включать в себя результаты бизнес поиска, включающие в себя наименования и адреса локальных фирм, которые продают кофе. Документ 44 на языке разметки может включать в себя тэги языка разметки, которые идентифицируют формат, в котором возвращаются наборы результатов для произнесения.
[0035] От этапа 335 последовательность этапов 300 переходит к этапу 340, где приложение 38 обработчика событий выполняет событие в ответ на прием одного или более наборов результатов от выбранного распознавателя. Событие может включать в себя ряд действий, включая, но не ограничиваясь ими, отображение одного или более наборов результатов пользователю клиентского вычислительного устройства 2 (например, на устройстве отображения 82), выполнение активизированной голосом функции вызова номера на основании набора результатов, игнорирование набора результатов, и объединение набора результатов с ранее принятыми наборами результатов для отображения на клиентском вычислительном устройстве 2. В соответствии с вариантом осуществления множественные наборы результатов могут быть показаны в пользовательском интерфейсе со вкладками (не показан), в котором каждая вкладка ассоциирована с набором результатов. Пользовательский интерфейс может также включать в себя список просмотра с показанными категориями, ассоциированными с каждым набором результатов или списком, сортированным по типу результата. Приложение 38 обработчика событий может быть сконфигурировано, чтобы определять, как принятые результаты обработаны (то есть определить, какое действие предпринять) на основе ряда критериев, включая, но не ограничиваясь ими, количество результатов в наборе результатов, показатель конфиденциальности для набора результатов, код возврата для набора результатов (например, код возврата может включать в себя код ошибки, указывающий, что сетевой сервер 70 дал сбой), и присутствие некоторых (то есть заранее определенных) значений для набора результатов. Например, приложение 38 обработчика событий может игнорировать набор результатов, если показатель конфиденциальности для распознавания произнесения является низким (например, меньше чем 50 %), и таким образом препятствовать тому, чтобы набор результатов был отображен пользователю клиентского вычислительного устройства 2. В качестве другого примера, приложение 38 обработчика событий может генерировать и отображать диалоговое окно ошибок пользователю клиентского вычислительного устройства 2 в ответ на прием кода возврата для набора результатов, который указывает, что сервер для обработки результатов дал сбой. В качестве другого примера, приложение 38 обработчика событий может обработать заранее определенные значения, возвращенные с набором результатов, причем эти значения представляют представление результатов пользователю, например представление набора результатов с эмблемой компании или рекламой. После этапа 340 последовательность этапов 300 затем заканчивается.
[0036] Фиг.4 - блок-схема, иллюстрирующая последовательность этапов 400 для использования обновленного распознавателя для обработки произнесения на основании документа на языке разметки в соответствии с различными вариантами осуществления. От этапа 305 на фиг.3 (описана выше) последовательность этапов 400 начинается на этапе 405, в котором приложение 38 обработчика событий посылает данные версии на (локальный) распознаватель 40 от клиентского вычислительного устройства 2 к сетевому серверу 70. Как описано выше в описании фиг.1, распознаватель 40 может быть в операционной системе (то есть операционной системе 32) клиентского вычислительного устройства 2. Очевидно, что, когда распознаватель встроен в операционную систему, приложение 38 обработчика событий может быть сконфигурировано, чтобы посылать версию операционной системы к сетевому серверу 70.
[0037] После этапа 405 последовательность этапов 400 продолжается на этапе 410, где приложение 38 обработчика событий определяет, был ли распознаватель 40 обновлен на клиентском вычислительном устройстве 2 на основании данных версии. Например, для встроенного распознавателя распознаватель 40 может быть обновлен после обновления операционной системы на клиентском вычислительном устройстве 2.
[0038] Если на этапе 410 распознаватель 40 был обновлен (как определено сетевым сервером 70 на основании принятых данных версии), то последовательность этапов 400 продолжается на этапе 415, где приложение 38 обработчика событий принимает дополнительный язык разметки (то есть документ 74 на языке разметки) от сетевого сервера 70. Документ 74 на языке разметки может включать в себя дополнительные тэги языка разметки для использования недавно добавленных функциональных особенностей (таких, как активизированный голосом вызов номера, например) в обновленной версии распознавателя 40. Последовательность этапов 400 затем возвращается к этапу 310 на фиг.3. Если на этапе 410 распознаватель не был обновлен (как определено сетевым сервером 70 на основании принятых данных версии), то последовательность этапов 400 также возвращается к этапу 310 на фиг.3.
[0039] Фиг.5 показывает документ на языке разметки, содержащий тэги, которые могут быть использованы для выбора из числа множественных распознавателей для обработки произнесения и обработки наборов результатов для произнесения, в соответствии с различными вариантами осуществления. В частности, фиг.5 показывает документ 44 на языке разметки на клиентском вычислительном устройстве 2. Документ 44 на языке разметки включает в себя тэг 90 <listener> (слушатель), тэг 92 <recognize> (распознать), тэг 94 <gramma> (грамматика), тэг 96 <recognize>, тэг 98 <gramma>, тэг 100 <listener>, тэг 102 <if> (если), тэг 104 <assign> (назначить), тэг 106 <if>, тэг 108 <throw event> (событие выполнения), тэг 109 <else/> (иначе), тэг 110 <if>, тэг 111 <assign> (назначить), и тэг 112 <throw event>.
[0040] Тэг 90 <listener> может быть использован приложением 38 обработчика событий, чтобы принять произнесение 42 от пользователя клиентского вычислительного устройства 2. Тэг 92 <recognize> включает в себя атрибут "тип", идентифицирующий "локальный" распознаватель. Тэг 94 <gramma> включает в себя атрибут "url", идентифицирующий адрес "http" (то есть адрес web-сайта) для того, чтобы получить доступ к грамматике, используемой локальным распознавателем. Тэг 96 <recognize> включает в себя атрибут "тип", идентифицирующий распознаватель "сетевой". Тэг 98 <gramma> включает в себя атрибут "url", идентифицирующий адрес "http" (то есть адрес web-сайта), для того, чтобы получить доступ к грамматике, используемой сетевым распознавателем. Как описано выше со ссылками на фиг.3, приложение 38 обработчика событий может синтаксически разобрать тэги в документе на языке разметки, чтобы идентифицировать грамматику, используемую в произнесении, и выбрать распознаватель для обработки произнесения на основании идентифицированной грамматики.
[0041] Как описано выше со ссылками на фиг.3, приложение 38 обработчика событий может принять один или более наборов результатов от выбранного распознавателя и обработать один или более наборов результатов на основании показателя конфиденциальности. Тэг 100 <listener> может быть использован приложением 38 обработчика событий, чтобы принять набор результатов от выбранного распознавателя в ответ на произнесение. Тэги 102, 104, 106, 108, 109, 110 и 111 могут быть использованы приложением 38 обработчика событий, чтобы определить, использовать ли один или более наборов результатов для того, чтобы выполнять действие на клиентском вычислительном устройстве 2 (например, <throw event= "process_selectedresult"/>, если показатель конфиденциальности для распознавания произнесения является высоким (например, больше чем 50% - "gSelectedresult.confidence > 0.5"), или использовать ли "пустой" (null) набор результатов, если показатель конфиденциальности для распознавания произнесения является низким (например, <если expr = "event.result > gSelectedresult.confience">, где event.result - "пустой результат ), и таким образом предотвратить выполнение действия относительно набора результатов на клиентском вычислительном устройстве 2.
[0042] Хотя изобретение было описано вместе с различными иллюстративными вариантами осуществления, специалистам понятно, что много модификаций могут быть сделаны к ним в рамках формулы изобретения, которая следует ниже. Соответственно, не подразумевается, что объем изобретения каким-либо образом ограничен в соответствии с вышеупомянутым описанием, но вместо этого должен быть определен полностью посредством формулы изобретения, которая следует ниже.
Класс G10L15/00 Распознавание речи