СПОСОБ ПОСТРОЕНИЯ СЕТИ ДЕКОДИРОВАНИЯ, СПОСОБ И УСТРОЙСТВО ДЛЯ РАСПОЗНАВАНИЯ РЕЧИ, А ТАКЖЕ НОСИТЕЛЬ ДАННЫХ
METHOD FOR BUILDING A DECODING NETWORK, METHOD AND DEVICE FOR SPEECH RECOGNITION, AS WELL AS DATA CARRIER

[0001] Настоящая заявка ссылается на приоритет заявки на патент КНР №201910983196.3, озаглавленной «Способ построения сети декодирования, способ и устройство для распознавания речи, а также носитель данных» и зарегистрированной в Государственном ведомстве по интеллектуальной собственности КНР 16 октября 2019 года, содержимое которой полностью включено в настоящий документ путем ссылки.
Область техники
[0002] Настоящее изобретение относится к технической области распознавания речи, а именно, к способу построения сети декодирования, способу распознавания речи, а также соответствующим устройству и носителю данных.
Предпосылки создания изобретения
[0003] Распознавание речи реализуют на основе языковых моделей, при этом большинство существующих схем распознавания речи основаны на универсальной языковой модели. В схемах распознавания речи, основанных на универсальной языковой модели, универсальную языковую модель сначала преобразуют в общую сеть декодирования, и затем распознаваемую речь декодируют с использованием общей сети декодирования.
[0004] Схема распознавания на основе универсальной языковой модели позволяет точно распознавать обычные слова, однако при этом она может распознавать профессиональные термины из какой-то области как обычные слова, имеющие сходное произношение с соответствующими профессиональными терминами. Иными словами, существующие схемы распознавания на основе универсальной языковой модели имеют низкую точность при распознавании терминов конкретной области.
Сущность изобретения
[0005] В свете вышесказанного, в настоящем изобретении предложены способ построения сети декодирования, способ и устройство для распознавания речи, а также носитель данных, имеющие целью повысить точность при распознавании терминов конкретной области. Предложенные технические решения описаны ниже.
[0006] Предложен способ построения сети декодирования. Способ включает: получение универсальной языковой модели, языковой модели конкретной области и общей сети декодирования, сформированной на основе универсальной языковой модели; формирование сети декодирования конкретной области на основе языковой модели конкретной области и универсальной языковой модели; и объединение сети декодирования конкретной области с общей сетью декодирования для получения целевой сети декодирования.
[0007] Опционально, формирование сети декодирования конкретной области на основе языковой модели конкретной области и универсальной языковой модели включает: выполнение интерполяции над универсальной языковой моделью и языковой моделью конкретной области, при этом часть, над которой выполняют интерполяцию, включает все части в языковой модели конкретной области и часть в универсальной языковой модели, которая также встречается в языковой модели конкретной области; и формирование сети декодирования конкретной области на основе части, над которой была выполнена интерполяция.
[0008] Опционально, объединение сети декодирования конкретной области с общей сетью декодирования для получения целевой сети декодирования включает: каскадирование сети декодирования конкретной области и общей сети декодирования для получения целевой сети декодирования.
[0009] Опционально, каскадирование сети декодирования конкретной области и общей сети декодирования включает: добавление виртуальных узлов для общей сети декодирования и для сети декодирования конкретной области, при этом виртуальные узлы включают начальный узел и конечный узел; и каскадирование общей сети декодирования и сети декодирования конкретной области посредством начального узла и конечного узла.
[0010] Опционально, каскадирование общей сети декодирования и сети декодирования конкретной области посредством начального узла и конечного узла включает: соединение конечного узла общей сети декодирования и начального узла сети декодирования конкретной области в направлении от конечного узла общей сети декодирования к начальному узлу сети декодирования конкретной области; и соединение конечного узла сети декодирования конкретной области и начального узла общей сети декодирования в направлении от конечного узла сети декодирования конкретной области к начальному узлу общей сети декодирования.
[0011] Предложен способ распознавания речи. Способ включает: декодирование данных распознаваемой речи с использованием целевой сети декодирования с целью получения пути декодирования для упомянутых данных распознаваемой речи, при этом целевую сеть декодирования строят с использованием описанного выше способа построения сети декодирования, и определение результата распознавания речи для упомянутых данных распознаваемой речи на основе пути декодирования для данных распознаваемой речи.
[0012] Опционально, определение результата распознавания речи для упомянутых данных распознаваемой речи на основе пути декодирования для данных распознаваемой речи включает:
определение результата распознавания речи для упомянутых данных распознаваемой речи на основе языковой модели высокого порядка, полученной заранее, и пути декодирования для данных распознаваемой речи, при этом языковую модель высокого порядка получают путем выполнения интерполяции над универсальной языковой моделью с использованием языковой модели конкретной области.
[0013] Опционально, процедура декодирования данных распознаваемой речи с использованием целевой сети декодирования с целью получения пути декодирования данных распознаваемой речи включает: ввод речевых кадров данных распознаваемой речи в целевую сеть декодирования последовательно для декодирования, с получением пути декодирования для данных распознаваемой речи, при этом речевые кадры данных распознаваемой речи вводят, соответственно, через два начальных узла целевой сети декодирования, в общую сеть декодирования и сеть декодирования конкретной области в целевой сети декодирования, для декодирования, и в случае, когда путь-кандидат декодирования в общей сети декодирования или сети декодирования конкретной области включает конечный узел, в общую сеть декодирования и/или сеть декодирования конкретной области выполняют ввод для продолжения декодирования до окончания речевых кадров.
[0014] Предложено устройство для построения сети декодирования. Устройство включает модуль получения языковых моделей и общей сети декодирования, сконфигурированный для получения универсальной языковой модели, языковой модели конкретной области и общей сети декодирования, сформированной на основе универсальной языковой модели; модуль формирования сети декодирования конкретной области, сконфигурированный для формирования сети декодирования конкретной области на основе универсальной языковой модели и языковой модели конкретной области; и модуль объединения сетей декодирования, сконфигурированный для объединения сети декодирования конкретной области с общей сетью декодирования для получения целевой сети декодирования.
[0015] Опционально, модуль формирования сети декодирования конкретной области включает: подмодуль интерполяции, сконфигурированный для выполнения интерполяции над универсальной языковой моделью и языковой моделью конкретной области, при этом часть, над которой выполняют интерполяцию, включает все части в языковой модели конкретной области и часть в универсальной языковой модели, которая также встречается в языковой модели конкретной области; и подмодуль формирования сети декодирования конкретной области, сконфигурированный для формирования сети декодирования конкретной области на основе части, над которой была выполнена интерполяция.
[0016] Опционально, модуль объединения сетей декодирования сконфигурирован для каскадирования сети декодирования конкретной области и общей сети декодирования для получения целевой сети декодирования.
[0017] Предложено устройство для распознавания речи. Устройство включает модуль декодирования, сконфигурированный для декодирования данных распознаваемой речи с использованием целевой сети декодирования с целью получения пути декодирования для упомянутых данных распознаваемой речи, при этом целевую сеть декодирования строят с использованием описанного выше устройства для построения сети декодирования; и модуль определения результата распознавания речи, сконфигурированный для определения результата распознавания речи для упомянутых данных распознаваемой речи на основе пути декодирования для данных распознаваемой речи.
[0018] Предложено устройство для построения сети декодирования. Устройство включает память, сконфигурированную для хранения программы; и процессор, сконфигурированный для исполнения упомянутой программы с целью выполнения описанного выше способа построения сети декодирования.
[0019] Предложен машиночитаемый носитель данных. На носителе данных хранят компьютерную программу, которая, при исполнении процессором, обеспечивает выполнение этим процессором описанного выше способа построения сети декодирования.
[0020] Предложено устройство для распознавания речи. Устройство включает память, сконфигурированную для хранения программы; и процессор, сконфигурированный для исполнения упомянутой программы с целью выполнения описанного выше способа распознавания речи.
[0021] Предложен машиночитаемый носитель данных. На носителе данных хранят компьютерную программу, которая, при исполнении процессором, обеспечивает выполнение этим процессором описанного выше способа распознавания речи.
[0022] Как видно из рассмотренных выше решений, в способе построения сети декодирования, предложенном в настоящем изобретении, на основе универсальной языковой модели и языковой модели конкретной области может быть сформирована сеть декодирования конкретной области, и затем сеть декодирования конкретной области объединяют с общей сетью декодирования, получая целевую сеть декодирования. С помощью способа построения сети декодирования, предложенного в настоящем изобретении, целевая сеть декодирования, полученная объединением сети декодирования конкретной области с общей сетью декодирования, способна точно распознавать как общие слова, так и термины конкретной области. По сравнению с существующими способами распознавания речи, основанными на универсальной языковой модели, предложенный способ позволяет значительно повысить точность распознавания речи для терминов конкретной области. При этом предложенный способ построения сети декодирования позволяет оперативно выполнять построение целевой сети декодирования. Предложенный способ построения сети декодирования позволяет эффективно выполнять построение целевой сети декодирования, способной точно распознавать термины конкретной области, что дает более точные результаты распознавания речи при распознавании речи, содержащей термины конкретной области, на основе целевой сети декодирования.
Краткое описание чертежей
[0023] Фиг. 1 представляет собой блок-схему алгоритма, иллюстрирующую способ построения сети декодирования в соответствии с одним из вариантов осуществления настоящего изобретения.
[0024] Фиг. 2 представляет собой блок-схему алгоритма, иллюстрирующую процедуру формирования сети декодирования конкретной области на основе универсальной языковой модели и языковой модели конкретной области в способе построения сети декодирования в соответствии с одним из вариантов осуществления настоящего изобретения.
[0025] Фиг. 3 представляет собой блок-схему алгоритма, иллюстрирующую процедуру каскадирования сети декодирования конкретной области и общей сети декодирования в способе построения сети декодирования в соответствии с одним из вариантов осуществления настоящего изобретения.
[0026] Фиг. 4 представляет собой схему, иллюстрирующую пример целевой сети декодирования, полученной каскадированием сети декодирования конкретной области и общей сети декодирования в соответствии с одним из вариантов осуществления настоящего изобретения.
[0027] Фиг. 5 представляет собой блок-схему алгоритма, иллюстрирующую способ распознавания речи в соответствии с одним из вариантов осуществления настоящего изобретения.
[0028] Фиг. 6 представляет собой структурную схему устройства для построения сети декодирования в соответствии с одним из вариантов осуществления настоящего изобретения.
[0029] Фиг. 7 представляет собой структурную схему, иллюстрирующую устройство для распознавания речи в соответствии с одним из примеров осуществления настоящего изобретения.
[0030] Фиг. 8 представляет собой структурную схему устройства для построения сети декодирования в соответствии с одним из вариантов осуществления настоящего изобретения.
[0031] Фиг. 9 представляет собой структурную схему, иллюстрирующую устройство для распознавания речи в соответствии с одним из примеров осуществления настоящего изобретения.
Подробное описание изобретения
[0032] Ниже, со ссылкой на чертежи и конкретные варианты осуществления настоящего изобретения, будут подробно описаны предложенные технические решения. Очевидно, что рассмотренные здесь варианты осуществления настоящего изобретения являются лишь подмножеством всех возможных вариантов его осуществления. Все другие варианты его осуществления, полученные специалистами в данной области техники на основе рассмотренных вариантов настоящего изобретения без приложения творческих усилий, попадают в объем правовой защиты настоящего изобретения.
[0033] Настоящее изобретение относится, в общем, к системе распознавания речи, предназначенной для распознавания речи. Система распознавания речи может принимать речь, вводимую пользователем, распознавать, при помощи сети декодирования, введенную пользователем речь в виде текста и выводить этот текст. В одной из возможных реализаций система распознавания речи может быть реализована в терминальном устройстве. В базовой конфигурации терминальное устройство может иметь элементы ввода (например, микрофон, датчик, сенсорный экран, клавишу) и элементы вывода (например, экран дисплея, громкоговоритель). Такое терминальное устройство может быть вычислительным устройством, подходящим для распознавания речи, например, смартфоном, планшетным компьютером, портативным компьютером, персональным компьютером, интеллектуальными часами, носимым устройством, телевизором или игровым устройством. Речь вводится пользователем при помощи элемента ввода (например, микрофона) терминального устройства. Речь, введенную пользователем, распознают при помощи терминального устройства с использованием сети декодирования, и полученный результат распознавания речи выводят при помощи элемента вывода. В дополнение к элементу ввода и элементу вывода терминальное устройство может также включать процессор и память, которые обмениваются друг с другом данными по шине связи. Процессор может представлять собой центральный процессорный блок (central processing unit, CPU) и/или графический процессор (graphics processing unit, GPU) процессор общего назначения, цифровой сигнальный процессор (Digital Signal Processor, DSP), заказную интегральную схему (Application Specific Integrated Circuit, ASIC), электрически программируемую вентильную матрицу (Field Programmable Gate Array, FPGA) или любое другое программируемое логическое устройство, логическое устройство на дискретных вентилях или транзисторах. Процессор общего назначения может представлять собой микропроцессор или любой из известных процессоров. Память может включать компьютерный носитель данных в форме энергозависимой и/или энергонезависимой памяти, например, памяти «только для чтения» (read-only memory, ROM) или памяти с произвольным доступом (random access memory, RAM). В памяти хранят программу, которая может быть вызвана процессором.
[0034] В еще одной из возможных реализаций система распознавания речи может быть реализована на одиночном сервере, при этом сервер может принимать данные, предоставленные из терминального устройства по сети, и также может передавать данные в терминальное устройство по сети. Система распознавания речи может быть реализована на множестве серверов, и аналогично сказанному выше, серверы могут принимать данные, предоставленные из терминального устройства по сети, и также могут передавать данные в терминальное устройство по сети. Сеть может представлять собой, без ограничения перечисленным, локальную вычислительную сеть (local area network, LAN), глобальную вычислительную сеть (wide area network, WAN) и т.п. В случае, когда систему распознавания речи реализуют на сервере, терминальное устройство получает речь, введенную пользователем при помощи устройства ввода терминального устройства, и передает речь на сервер по сети; сервер, с использованием сети декодирования, распознает речь, принятую от терминального устройства, и получает результат распознавания речи, а затем выводит результат распознавания речи в терминальное устройство по сети; и терминальное устройство выводит результат распознавания речи при помощи элемента вывода. Сервер может включать процессор и память, которые обмениваются друг с другом данными по шине связи. Процессор может представлять собой центральный процессорный блок (CPU) и/или графический процессор (GPU) процессор общего назначения, цифровой сигнальный процессор (DSP), заказную интегральную схему (ASIC), электрически программируемую вентильную матрицу (FPGA) или любое другое программируемое логическое устройство, логическое устройство на дискретных вентилях или транзисторах, или дискретных аппаратных компонентах. Процессор общего назначения может представлять собой микропроцессор или любой из традиционных процессоров. Память может включать компьютерный носитель данных в форме энергозависимой и/или энергонезависимой памяти, например, памяти «только для чтения» (ROM) или памяти с произвольным доступом (RAM). В памяти хранят программу, которая может быть вызвана процессором.
[0035] Учитывая, что система распознавания речи при использовании общей сети декодирования может обладать низкой эффективностью распознавания речи, содержащей профессиональные термины из некоторой области, авторы настоящего изобретения провели исследование, описанное ниже, нацеленное на повышение точности распознавания терминов из конкретной области. В соответствии с исходным замыслом, выполняют обучение с использованием корпуса языка конкретной области для получения языковой модели области, затем обученную модель области интерполируют в универсальную языковую модель, а универсальную языковую модель после интерполяции преобразуют в целевую сеть декодирования. Альтернативно, универсальная языковая модель после интерполяции может быть преобразована во взвешенный конечный автомат (weighted finite state machine, WFST), который используют в качестве целевой сети декодирования. После получения целевой сети декодирования с ее помощью может выполняться распознавание речи.
[0036] Следует отметить, что универсальная языковая модель может применяться глобально и подходить для различных стандартных ситуаций, а языковая модель конкретной области является языковой моделью, полученной путем обучения с использованием слов, являющихся распространенными в некоторой конкретной области, однако нечасто встречающимися в других областях. Интерполяция языковой модели конкретной области в универсальную языковую модель не только сохраняет исходные знания из универсальной языковой модели, но также повышает вероятность появления профессиональных терминов, отсутствующих в универсальной языковой модели. Следовательно, путем интерполяции языковой модели конкретной области в универсальную языковую модель может быть получена языковая модель, подходящая для конкретной области, и путем преобразования этой языковой модели может быть получена целевая сеть декодирования, которая, при ее использовании для распознавания речи, позволяет получить повышенную точность распознавания.
[0037] Авторы настоящего изобретения выяснили, что, несмотря на повышение точности распознавания терминов, связанных с конкретной областью, предложенное выше решение обладает следующими недостатками. После интерполяции языковой модели конкретной области в универсальную языковую модель необходимо повторно формировать сеть декодирования, например, WFST, на основе универсальной языковой модели после интерполяции. Поскольку универсальная языковая модель после интерполяции имеет большой объем, необходимо длительное время (более нескольких часов) и значительные объемы памяти для формирования сети декодирования, и, следовательно, применение такого решения в промышленных системах может быть затруднено.
[0038] Чтобы устранить эти недостатки, авторы настоящего изобретения провели дополнительные исследования и предложили новое решение. В соответствии с замыслом этого решения, сеть декодирования, сформированную на основе универсальной языковой модели, используют в качестве общей сети декодирования; языковую модель конкретной области получают путем обучения с использованием корпуса языка конкретной области, и сеть декодирования, сформированную на основе языковой модели конкретной области, используют в качестве сети декодирования конкретной области; в общей сети декодирования выполняют поиск всех путей, присутствующих в сети декодирования конкретной области, и модифицируют веса этих путей.
[0039] Однако в рассмотренном выше решении поиск требует длительного времени, поскольку путь в языковой модели конкретной области является слишком длинным. Другими словами, несмотря на то, что это решение снимает проблему потребления большого объема ресурсов на повторное формирование сети декодирования, оно все-таки требует длительного времени.
[0040] В ходе дальнейших исследований авторы наконец предложили решение, устраняющее описанные выше недостатки. Решение, предложенное в настоящем изобретении, описано с помощью рассмотренных ниже вариантов осуществления настоящего изобретения.
[0041] В соответствии с одним из вариантов осуществления настоящего изобретения, предложен способ построения сети декодирования. В соответствии с иллюстрацией фиг. 1, на которой показана блок-схема алгоритма для способа построения сети декодирования, способ может включать шаги S101-S103.
[0042] На шаге S101 получают универсальную языковую модель, языковую модель конкретной области и общую сеть декодирования, сформированную на основе универсальной языковой модели.
[0043] Языковую модель конкретной области получают путем обучения с использованием корпуса языка конкретной области, а общую сеть декодирования получают с помощью двоичного преобразования универсальной языковой модели.
[0044] На шаге S102 на основе универсальной языковой модели и языковой модели конкретной области формируют сеть декодирования конкретной области.
[0045] Следует отметить, что процедура декодирования в системе распознавания речи по существу представляет собой сравнение оценок путей декодирования. В виду этого, в соответствии с настоящим изобретением, сеть декодирования конкретной области формируют путем выполнения интерполяции над универсальной языковой моделью и языковой моделью конкретной области. Несмотря на необходимость формирования сети декодирования конкретной области, временные ресурсы и ресурсы памяти, потребляемые для формирования сети декодирования конкретной области, значительно сокращены по сравнению с ресурсами, необходимыми для описанного выше «повторного формирования сети декодирования на основе универсальной языковой модели после интерполяции».
[0046] Процедура формирования сети декодирования конкретной области на основе универсальной языковой модели и языковой модели конкретной области будет рассмотрена в приведенном ниже описании вариантов осуществления настоящего изобретения.
[0047] На шаге S103 сеть декодирования конкретной области объединяют с общей сетью декодирования для получения целевой сети декодирования.
[0048] В способе построения сети декодирования, предложенном в вариантах осуществления настоящего изобретения, на основе универсальной языковой модели и языковой модели конкретной области может быть сформирована сеть декодирования конкретной области, и затем сеть декодирования конкретной области объединяют с общей сетью декодирования, в результате чего получают целевую сеть декодирования, способную декодировать данные распознаваемой речи. С помощью способа построения сети декодирования, предложенного в вариантах осуществления настоящего изобретения, целевая сеть декодирования, полученная объединением сети декодирования конкретной области с общей сетью декодирования, способна точно распознавать как общие слова, так и термины конкретной области. По сравнению с общей сетью декодирования целевая сеть декодирования, построенная в соответствии с вариантами осуществления настоящего изобретения, позволяет повысить точность распознавания речи для терминов, связанных с конкретной областью. При этом временные ресурсы и ресурсы памяти, потребляемые для формирования сети декодирования конкретной области, значительно сокращены по сравнению с ресурсами, необходимыми для повторного формирования общей сети декодирования.
[0049] Ниже описан шаг S102 формирования сети декодирования конкретной области на основе языковой модели конкретной области и универсальной языковой модели, выполняемые в описанном выше варианте осуществления изобретения.
[0050] Обратимся к фиг. 2, которая представляет собой эскизную блок-схему алгоритма, иллюстрирующую процедуру формирования сети декодирования конкретной области на основе универсальной языковой модели и языковой модели конкретной области. Процедура может включать шаги S201-S202.
[0051] На шаге S201 выполняют интерполяцию над универсальной языковой моделью и языковой моделью конкретной области.
[0052] Часть, над которой выполняют интерполяцию, включает все части в языковой модели конкретной области и часть в универсальной языковой модели, которая также встречается в языковой модели конкретной области.
[0053] В одном из вариантов осуществления настоящего изобретения как универсальная языковая модель, так и языковая модель конкретной области может быть N-граммной моделью. Вследствие этого, при выполнении интерполяции над универсальной языковой моделью и языковой моделью конкретной области в данном варианте осуществления изобретения, часть, над которой выполняют интерполяцию, включает все N-граммные записи в языковой модели конкретной области и N-граммную запись в универсальной языковой модели, которая также встречается в языковой модели конкретной области. Другими словами, часть, над которой выполняют интерполяцию, включает только N-граммную запись, которая встречается в языковой модели конкретной области, и не включает ни одной N-граммной записи, которая отсутствует в языковой модели конкретной области.
[0054] Следует отметить, что интерполяция над N-граммной записью в языковой модели конкретной области и N-граммной записью, которая имеется в универсальной языковой модели и также встречается в языковой модели конкретной области, по существу является вероятностной интерполяцией над этими N-граммными записями. Допустим, что и языковая модель конкретной области, и универсальная языковая модель являются языковыми моделями третьего порядка, тогда формула вероятностной интерполяции триграмм будет иметь следующий вид:
n
где  - вероятность присутствия ω в случае присутствия  и  - вероятность N-граммной записи, которая находится в универсальной языковой модели и также встречается в языковой модели конкретной области,  - вероятность N-граммной записи в языковой модели конкретной области, а  - вероятность N-граммной записи после выполнения интерполяции над N-граммной записью в языковой модели конкретной области и N-граммной записью в универсальной языковой модели, которая также встречается в языковой модели конкретной области, и α - коэффициент интерполяции.
[0055] На шаге S202 формируют сеть декодирования конкретной области на основе части, над которой была выполнена интерполяция.
[0056] В одном из вариантов осуществления настоящего изобретения сеть декодирования конкретной области получают путем выполнения двоичного преобразования части, над которой была выполнена интерполяция.
[0057] Поскольку количество N-граммных записей в той части, над которой выполняют интерполяцию (то есть N-граммных записей, встречающихся только в языковой модели конкретной области) невелико, формирование сети декодирования конкретной области на основе этой части, над которой выполняют интерполяцию, требует лишь малого количества временных ресурсов и ресурсов памяти.
[0058] Далее будет рассмотрен шаг S103 объединения сети декодирования конкретной области с общей сетью декодирования для получения целевой сети декодирования, в соответствии с описанным выше вариантов осуществления настоящего изобретения.
[0059] Объединение сети декодирования конкретной области с общей сетью декодирования может выполняться различными способами.
[0060] В одной из возможных реализаций целевая сеть декодирования может быть получена параллельным соединением сети декодирования конкретной области и общей сети декодирования.
[0061] В случае декодирования данных распознаваемой речи с помощью целевой сети, полученной параллельным соединением сети декодирования конкретной области и общей сети декодирования, данные распознаваемой речи вводят в сеть декодирования конкретной области и в общую сеть декодирования, соответственно, для декодирования, в результате чего получают путь декодирования в общей сети декодирования и путь декодирования в сети декодирования конкретной области. Оценку пути декодирования в общей сети декодирования сравнивают с оценкой пути декодирования в сети декодирования конкретной области, и в качестве финального пути декодирования выбирают путь декодирования с более высокой оценкой. То есть, финальным путем декодирования будет либо путь декодирования в сети декодирования конкретной области, либо путь декодирования в общей сети декодирования. Наконец, на основе финального пути декодирования формируют результат декодирования.
[0062] Авторы настоящего изобретения в результате исследований выявили, что целевая сеть декодирования, полученная параллельным соединением сети декодирования конкретной области и общей сети декодирования, позволяет точно распознавать речь, содержащую либо исключительно обычные слова, либо исключительно термины конкретной области, однако если речь содержит и обычные слова, и термины конкретной области одновременно, точность распознавания будет невысокой. Нужно понимать, что в некоторых случаях распознаваемая речь может быть непрерывной и длительной, содержащей большое количество слов, которые, как правило, включают и обычные слова, и профессиональные термины. Соответственно, сеть декодирования, полученная параллельным соединением сети декодирования конкретной области и общей сети декодирования, не подходит для распознавания непрерывной речи, содержащей большое количество слов.
[0063] Ввиду описанных выше проблем в настоящем изобретении предложена другая реализация объединения сети декодирования конкретной области с общей сетью декодирования. Основной замысел этой реализации состоит в каскадном соединении сети декодирования конкретной области и общей сети декодирования, при этом целевая сеть декодирования, полученная каскадированием сети декодирования конкретной области и общей сети декодирования может точно распознавать речь, одновременно содержащую обычные слова и профессиональные термины, а также подходит для распознавания непрерывной речи, включающей большое количество слов.
[0064] Обратимся к фиг. 3, которая представляет собой блок-схему алгоритма, иллюстрирующую процедуру каскадирования сети декодирования конкретной области и общей сети декодирования. Процедура может включать шаги S301-S302.
[0065] На шаге S301 добавляют виртуальные узлы и для общей сети декодирования, и для сети декодирования конкретной области.
[0066] Виртуальные узлы включают начальный узел и конечный узел.
[0067] На шаге S302 каскадируют общую сеть декодирования и сеть декодирования конкретной области посредством начального узла и конечного узла.
[0068] В одном из вариантов осуществления настоящего изобретения процедура каскадирования общей сети декодирования и сети декодирования конкретной области посредством начального узла и конечного узла включает: соединение конечного узла общей сети декодирования и начального узла сети декодирования конкретной области в направлении от конечного узла общей сети декодирования к начальному узлу сети декодирования конкретной области; и соединение конечного узла сети декодирования конкретной области и начального узла общей сети декодирования в направлении от конечного узла сети декодирования конкретной области к начальному узлу общей сети декодирования;
[0069] Рассмотрим фиг. 4, на которой показана блок-схема целевой сети декодирования, полученной каскадированием сети декодирования конкретной области и общей сети декодирования. В соответствии с иллюстрацией фиг. 4, общая сеть декодирования включает узел 1, узел 2 и узел 3, а сеть декодирования конкретной области включает узел 4, узел 5 и узел 6.
[0070] Для каскадирования сети декодирования конкретной области и общей сети декодирования создают виртуальный начальный узел и виртуальный конечный узел для сети декодирования конкретной области, а также виртуальный начальный узел и виртуальный конечный узел для общей сети декодирования. Для каскадирования сети декодирования конкретной области и общей сети декодирования создают виртуальный начальный узел и виртуальный конечный узел для сети декодирования конкретной области, а также виртуальный начальный узел и виртуальный конечный узел для общей сети декодирования. Начальный узел, созданный для общей сети декодирования, и узел 1 в общей сети декодирования соединяют в направлении от начального узла к узлу 1; узел 3 в общей сети декодирования и конечный узел, созданный для общей сети декодирования, соединяют в направлении от узла 3 к конечному узлу; конечный узел, созданный для общей сети декодирования, и начальный узел, созданный для общей сети декодирования, соединяют в направлении от начального узла к конечному узлу; начальный узел, созданный для сети декодирования конкретной области, и узел 4 в сети декодирования конкретной области соединяют в направлении от начального узла к узлу 4; узел 6 в сети декодирования конкретной области и конечный узел, созданный для сети декодирования конкретной области, соединяют в направлении от узла 6 к конечному узлу; конечный узел, созданный для сети декодирования конкретной области, и начальный узел, созданный для сети декодирования конкретной области, соединяют в направлении от начального узла к конечному узлу; конечный узел, созданный для общей сети декодирования, и начальный узел, созданный для сети декодирования конкретной области, соединяют в направлении от конечного узла к начальному узлу; и конечный узел, созданный для сети декодирования конкретной области, и начальный узел, созданный для общей сети декодирования, соединяют в направлении от конечного узла к начальному узлу.
[0071] При декодировании распознаваемой речи с использованием целевой сети декодирования, полученной каскадированием сети декодирования конкретной области и общей сети декодирования, если данные распознаваемой речи включают как обычные слова, так и профессиональные термины, финальный путь декодирования будет состоять из пути декодирования в общей сети декодирования и пути декодирования в сети декодирования конкретной области. Например, данными распознаваемой речи могут быть "Давайте начнем распознавание речи": для них путь декодирования, соответствующий словам "Давайте начнем" присутствует в общей сети декодирования, а путь декодирования, соответствующий словам "распознавание речи", присутствует в сети декодирования конкретной области. В этом случае финальный путь декодирования будет состоять из пути декодирования, соответствующего "Давайте начнем", и пути декодирования, соответствующего "распознавание речи". Следует отметить, что путь декодирования в общей сети декодирования и путь декодирования в сети декодирования конкретной области соединены конечным узлом.
[0072] Следует отметить, что начальный узел и конечный узел, добавленные в сеть декодирования конкретной области и общую сеть декодирования, могут быть заданы как «немые» (silent, обозначено "sil"). Такие начальный узел и конечный узел не влияют на результат декодирования. При декодировании данных распознаваемой речи с использованием целевой сети декодирования речевые кадры данных распознаваемой речи проходят через два начальных узла и вводятся в сеть декодирования конкретной области и общую сеть декодирования, соответственно, для декодирования. В соответствии с иллюстрацией фиг. 4 речевые кадры данных распознаваемой речи входят в сеть декодирования через стартовый символ "
", переходят в два начальных узла и вводятся в общую сеть декодирования и сеть декодирования конкретной области, соответственно, для декодирования. В случае, когда путь-кандидат декодирования в общей сети декодирования или сети декодирования конкретной области включает конечный узел, процедура декодирования переходит от конечного узла по меньшей мере в один начальный узел для продолжения декодирования в общей сети декодирования и/или сети декодирования конкретной области, до окончания речевых кадров. Затем выводят конечный символ "
", и процедура декодирования завершается.
[0073] В соответствии с одним из вариантов осуществления настоящего изобретения предложен также способ распознавания речи, основанный на рассмотренных выше вариантах осуществления изобретения. В соответствии с иллюстрацией фиг. 5, на которой показана блок-схема алгоритма способа распознавания речи, способ может включать шаги S501-S502.
[0074] На шаге S501 данные распознаваемой речи декодируют с использованием целевой сети декодирования с целью получения пути декодирования для данных распознаваемой речи.
[0075] Целевую сеть декодирования строят с использованием способа построения сети декодирования, предложенного в рассмотренном выше варианте осуществления настоящего изобретения.
[0076] В одной из возможных реализаций, пути декодирования в целевой сети декодирования могут быть представлены в виде решетки. Следует отметить, что решетка - это взвешенный ненаправленный граф, в котором каждый узел решетки представляет собой акустическую единицу, и каждая дуга содержит два веса, а именно, акустический вес и языковой вес. Любой путь слева направо в решетке образует результат распознавания речи. Оценку пути в целом вычисляют как сумму акустических весов всех ребер на пути и языкового веса, соответствующего этому пути.
[0077] В частности, процедура декодирования данных распознаваемой речи с использованием целевой сети декодирования с целью получения пути декодирования данных распознаваемой речи может включать: ввод речевых кадров данных распознаваемой речи в целевую сеть декодирования, последовательно, для декодирования, с получением пути декодирования для данных распознаваемой речи. Речевые кадры данных распознаваемой речи вводят, соответственно, через два виртуальных начальных узла целевой сети декодирования, в общую сеть декодирования и сеть декодирования конкретной области в целевой сети декодирования, для декодирования. В случае, когда путь-кандидат декодирования в общей сети декодирования или сети декодирования конкретной области включает конечный узел, процедура переходит от конечного узла по меньшей мере в один начальный узел, соединенный с этим конечным узлом, и выполняют ввод в общую сеть декодирования и/или сеть декодирования конкретной области для продолжения декодирования до окончания речевых кадров.
[0078] Следует отметить, что в случае, когда путь-кандидат декодирования содержит конечный узел, если и оценка для пути, входящего в общую сеть декодирования, и оценка для пути, входящего в сеть декодирования конкретной области, одновременно, больше или равны заранее заданному порогу оценки пути, процедура декодирования переходит от конечного узла к двум начальным узлам, соединенными с этим конечным узлом, и выполняет ввод в общую сеть декодирования и сеть декодирования конкретной области для декодирования; если оценка для пути, входящего в общую сеть декодирования, больше или равна пороговой оценке пути, а оценка для пути, входящего в сеть декодирования конкретной области, меньше, чем пороговая оценка пути, процедура декодирования переходит от конечного узла к стартовому узлу, созданному для общей сети декодирования, для ввода в общую сеть декодирования с целью декодирования; если оценка для пути, входящего в сеть декодирования конкретной области, больше или равна пороговой оценке пути, а оценка для пути, входящего в общую сеть декодирования, меньше, чем пороговая оценка пути, процедура декодирования переходит от конечного узла к стартовому узлу, созданному для сети декодирования конкретной области, для ввода в сеть декодирования конкретной области с целью декодирования.
[0079] На шаге S502 определяют результат распознавания речи для данных распознаваемой речи на основе пути декодирования для данных распознаваемой речи.
[0080] Процедура определения результата распознавания речи для данных распознаваемой речи на основе пути декодирования для данных распознаваемой речи может быть реализована различными методами.
[0081] В одной из возможных реализаций могут быть получены результаты-кандидаты распознавания речи и оценки для результатов-кандидатов распознавания речи на основе пути декодирования для данных распознаваемой речи, и результат-кандидат распознавания речи с наивысшей оценкой может быть определен как результат распознавания речи для упомянутых данных распознаваемой речи.
[0082] В еще одной из возможных реализаций результат распознавания речи для данных распознаваемой речи может быть определен при помощи языковой модели высокого порядка, полученной заранее, и на основе пути декодирования для данных распознаваемой речи. В частности, путь декодирования для данных распознаваемой речи может быть введен в языковую модель высокого порядка, полученную заранее, в результате чего может быть получен результат распознавания речи для упомянутых данных распознаваемой речи. Следует отметить, что языковую модель высокого порядка получают путем выполнения интерполяции над универсальной языковой моделью с использованием языковой модели конкретной области. Языковая модель высокого порядка позволяет выбрать наилучший результат распознавания речи из множества результатов-кандидатов распознавания в качестве результата распознавания речи для данных распознаваемой речи.
[0083] В способе распознавания речи, предложенном в вариантах осуществления настоящего изобретения, поскольку целевую сеть декодирования получают объединением сети декодирования конкретной области с общей сетью декодирования, распознаваемая речь, содержащая термины, связанные с конкретной областью, может быть точно распознана с помощью целевой сети декодирования.
[0084] Ниже описано устройство для построения сети декодирования в соответствии с одним из вариантов осуществления настоящего изобретения. Описанные устройство для построения сети декодирования и способ построения сети декодирования могут соответствовать друг другу. Обратимся к фиг. 6, где показана структурная схема устройства для построения сети декодирования в соответствии с одним из вариантов осуществления настоящего изобретения, при этом предложенное устройство для построения сети декодирования может включать: модуль 601 получения языковых моделей и общей сети декодирования, модуль 602 формирования сети декодирования конкретной области и модуль 603 объединения сетей декодирования. Модуль 601 получения языковых моделей и общей сети декодирования сконфигурирован для получения универсальной языковой модели, языковой модели конкретной области и общей сети декодирования, сформированной на основе универсальной языковой модели. Модуль 602 формирования сети декодирования конкретной области сконфигурирован для формирования сети декодирования конкретной области на основе универсальной языковой модели и языковой модели конкретной области. Модуль 603 объединения сетей декодирования сконфигурирован для объединения сети декодирования конкретной области с общей сетью декодирования для получения целевой сети декодирования.
[0085] С помощью устройства для построения сети декодирования, предложенного в рассмотренном варианте осуществления настоящего изобретения, целевая сеть декодирования, полученная объединением сети декодирования конкретной области с общей сетью декодирования, способна точно распознавать не только общие слова, но и термины конкретной области. По сравнению с общей сетью декодирования, целевая сеть декодирования, построенная в соответствии с данным вариантом осуществления настоящего изобретения, позволяет повысить точность распознавания речи, включающей термины конкретной области. При этом временные ресурсы и ресурсы памяти, потребляемые сетью декодирования конкретной области, значительно сокращены по сравнению с ресурсами, необходимыми для повторного формирования общей сети декодирования.
[0086] В одной из возможных реализаций модуль 602 формирования сети декодирования конкретной области в устройстве для построения сети декодирования, предложенном в рассмотренном выше варианте осуществления изобретения, может включать подмодуль интерполяции и подмодуль формирования сети декодирования конкретной области. Подмодуль интерполяции сконфигурирован для выполнения интерполяции над универсальной языковой моделью и языковой моделью конкретной области, при этом часть, над которой выполняют интерполяцию, включает все части в языковой модели конкретной области и часть в универсальной языковой модели, которая также встречается в языковой модели конкретной области. Подмодуль формирования сети декодирования конкретной области сконфигурирован для формирования сети декодирования конкретной области на основе части, над которой была выполнена интерполяция.
[0087] В одной из возможных реализаций модуль 603 объединения сетей декодирования в устройстве для построения сети декодирования, предложенном в рассмотренном выше варианте осуществления изобретения, сконфигурирован, в частности, для каскадирования сети декодирования конкретной области и общей сети декодирования с целью получения целевой сети декодирования.
[0088] В одной из возможных реализаций модуль 603 объединения сетей декодирования в устройстве для построения сети декодирования, предложенном в рассмотренном выше варианте осуществления изобретения, включает подмодуль добавления узлов и подмодуль каскадирования. Подмодуль добавления узлов сконфигурирован для добавления виртуальных узлов как для общей сети декодирования, так и для сети декодирования конкретной области, при этом виртуальные узлы включают начальный узел и конечный узел. Подмодуль каскадирования сконфигурирован для каскадирования общей сети декодирования и сети декодирования конкретной области посредством начального узла и конечного узла.
[0089] В одной из возможных реализаций подмодуль каскадирования сконфигурирован, в частности, для соединения конечного узла общей сети декодирования и начального узла сети декодирования конкретной области в направлении от конечного узла общей сети декодирования к начальному узлу сети декодирования конкретной области; и для соединения конечного узла сети декодирования конкретной области и начального узла общей сети декодирования в направлении от конечного узла сети декодирования конкретной области к начальному узлу общей сети декодирования.
[0090] В соответствии с одним из вариантов осуществления настоящего изобретения предложено также устройство для распознавания речи, соответствующее рассмотренному способу распознавания речи. В соответствии с иллюстрацией фиг. 7, на которой показана структурная схема устройства для распознавания речи, устройство для распознавания речи может включать модуль 701 декодирования и модуль 702 определения результата распознавания речи. Модуль 701 декодирования сконфигурирован для декодирования данных распознаваемой речи с использованием целевой сети декодирования, построенной при помощи устройства для построения сети декодирования, предложенного в рассмотренном выше варианте осуществления изобретения, с целью получения пути декодирования для упомянутых данных распознаваемой речи. Модуль 702 определения результата распознавания речи сконфигурирован для определения результата распознавания речи для упомянутых данных распознаваемой речи на основе пути декодирования для данных распознаваемой речи.
[0091] В способе распознавания речи, предложенном в данном варианте осуществления настоящего изобретения, поскольку целевую сеть декодирования получают объединением сети декодирования конкретной области с общей сетью декодирования, распознаваемая речь, содержащая термины, связанные с конкретной областью, может быть точно распознана с помощью целевой сети декодирования.
[0092] В одной из возможных реализаций, модуль 701 декодирования в устройстве для распознавания речи, предложенном в рассмотренном выше варианте осуществления изобретения, сконфигурирован, в частности, для определения результата распознавания речи для упомянутых данных распознаваемой речи на основе языковой модели высокого порядка, полученной заранее, и пути декодирования для данных распознаваемой речи, при этом языковую модель высокого порядка получают путем выполнения интерполяции над универсальной языковой моделью с использованием языковой модели конкретной области.
[0093] В одной из возможных реализаций модуль 701 декодирования в устройстве для распознавания речи, предложенном в рассмотренном выше варианте осуществления настоящего изобретения, сконфигурирован, в частности, для последовательного ввода речевых кадров данных распознаваемой речи в целевую сеть декодирования для декодирования, с получением пути декодирования для данных распознаваемой речи. Речевые кадры данных распознаваемой речи вводят, соответственно, через два начальных узла целевой сети декодирования, в общую сеть декодирования и сеть декодирования конкретной области целевой сеть декодирования, для декодирования. В случае, когда путь-кандидат декодирования в общей сети декодирования или сети декодирования конкретной области включает конечный узел, процедура декодирования переходит от конечного узла по меньшей мере в один начальный узел, соединенный с этим конечным узлом, и в общую сеть декодирования и/или сеть декодирования конкретной области выполняют ввод для продолжения декодирования до окончания речевых кадров.
[0094] В соответствии с одним из вариантов осуществления изобретения предложено также устройство для построения сети декодирования. Обратимся к фиг. 8, где показана структурная схема устройства для построения сети декодирования в соответствии с одним из вариантов осуществления изобретения, при этом предложенное устройство для построения сети декодирования может включать: по меньшей мере один процессор 801, по меньшей мере один интерфейс 802 связи, по меньшей мере одну память 803 и по меньшей мере одну шину 804 связи. В данном варианте осуществления настоящего изобретения количество процессоров 801, интерфейсов 802 связи, памятей 803 и шин 804 связи равно по меньшей мере единице, при этом процессор 802, интерфейс 802 связи и память 803 обмениваются друг с другом данными по шине 804 связи. Процессор 801 может быть центральным процессорным блоком (CPU), заказной интегральной схемой (ASIC), одной или более интегральными схемами, сконфигурированными для реализации вариантов осуществления настоящего изобретения, и т.п. Память 803 может включать высокоскоростную RAM-память, а также может включать энергонезависимую память, например, по меньшей мере одну дисковую память. В памяти хранят программу, при этом программа, хранимая в памяти, может вызываться процессором. Программу применяют для следующего: получение универсальной языковой модели, языковой модели конкретной области и общей сети декодирования, сформированной на основе универсальной языковой модели; формирование сети декодирования конкретной области на основе языковой модели конкретной области и универсальной языковой модели; и объединение сети декодирования конкретной области с общей сетью декодирования для получения целевой сети декодирования.
[0095] В альтернативных вариантах осуществления настоящего изобретения детализированные, а также расширенные функции упомянутой программы могут соответствовать приведенному выше описанию.
[0096] В соответствии с одним из вариантов осуществления настоящего изобретения предложен также машиночитаемый носитель данных. На машиночитаемом носителе данных может храниться программа, подходящая для исполнения процессором, при этом программу используют для следующего: получение универсальной языковой модели, языковой модели конкретной области и общей сети декодирования, сформированной на основе универсальной языковой модели; формирование сети декодирования конкретной области на основе языковой модели конкретной области и универсальной языковой модели; и объединение сети декодирования конкретной области с общей сетью декодирования для получения целевой сети декодирования.
[0097] В соответствии с одним из вариантов осуществления настоящего изобретения, предложено также устройство для распознавания речи. В соответствии с иллюстрацией фиг. 9, на которой показана структурная схема устройства для распознавания речи, устройство для распознавания речи может включать: по меньшей мере один процессор 901, по меньшей мере один интерфейс 902 связи, по меньшей мере одну память 903 и по меньшей мере одну шину 904 связи. В данном варианте осуществления настоящего изобретения количество процессоров 901, интерфейсов 902 связи, памятей 903 и шин 904 связи равно по меньшей мере единице, при этом процессор 901, интерфейс 902 связи и память 903 обмениваются друг с другом данными по шине 904 связи. Процессор 901 может быть центральным процессорным блоком (CPU), заказной интегральной схемой (ASIC), одной или более интегральными схемами, сконфигурированными для реализации вариантов осуществления настоящего изобретения, и т.п. Память 903 может включать высокоскоростную RAM-память, а также может включать энергонезависимую память, например, по меньшей мере одну память на магнитном диске. В памяти хранят программу, при этом программа, хранимая в памяти, может вызываться процессором. Программу применяют для следующего: декодирование данных распознаваемой речи с использованием целевой сети декодирования, построенной с использованием способа построения сети декодирования в соответствии с рассмотренными выше вариантами осуществления изобретения, с целью получения пути декодирования для данных распознаваемой речи; и определение результата распознавания речи для упомянутых данных распознаваемой речи на основе пути декодирования для данных распознаваемой речи.
[0098] В альтернативных вариантах осуществления настоящего изобретения детализированные, а также расширенные функции упомянутой программы могут соответствовать приведенному выше описанию.
[0099] В соответствии с одним из вариантов осуществления изобретения предложен также машиночитаемый носитель данных. На машиночитаемом носителе данных может храниться программа, подходящая для исполнения процессором, при этом программу используют для следующего: декодирование данных распознаваемой речи с использованием целевой сети декодирования, построенной с использованием способа построения сети декодирования в соответствии с рассмотренными выше вариантами осуществления изобретения, с целью получения пути декодирования для данных распознаваемой речи; и определение результата распознавания речи для упомянутых данных распознаваемой речи на основе пути декодирования для данных распознаваемой речи.
[0100] Наконец, следует отметить, что указывающие на отношения термины, такие как «первый», «второй» и т.п., используются в настоящем документе исключительно для различения одних элементов, или операций, от других, то есть они не утверждают и не предполагают наличия действительных взаимоотношений или порядка среди таких элементов или операций. При этом такие выражения как «включает», «содержит» или любые их варианты следует считать неисключающими. Соответственно, процедура, способ, изделие или устройство, включающие набор элементов, включают не только эти элементы, но также и элементы, которые не были перечислены, а также элементы, которые внутренне присущи процедуре, способу, изделию или устройству. Если не указано на обратное, процедура, способ, изделие или устройство, описанные как «включающие/содержащие» что-либо, могут также включать другие идентичные элементы в составе упомянутых процедуры, способа, изделия или устройства.
[0101] Варианты осуществления изобретения в данном документе были описаны последовательно. Описание каждого из вариантов осуществления настоящего изобретения сфокусировано на его отличиях от других, при этом за описанием аналогичных или идентичных частей в этих вариантах осуществления настоящего изобретения можно обращаться к другим вариантам.
[0102] На основе приведенного выше описания вариантов осуществления изобретения специалисты в данной области техники должны быть способны реализовать настоящее изобретение, или применить его на практике. Специалистам в данной области техники могут быть очевидны множество различных модификаций этих вариантов осуществления настоящего изобретения. Общие принципы, изложенные в настоящем изобретении, могут быть реализованы и в других вариантах его осуществления, без выхода за рамки сущности и объема настоящего изобретения. Соответственно, настоящее изобретение не ограничено исключительно описанными здесь вариантами его осуществления, и его сущность и объем определяются максимально широкой трактовкой, совместимой с принципами и новыми признаками, описанными в данном документе.