RU2778380C2 - Method and system for speech conversion into text - Google Patents

Method and system for speech conversion into text Download PDF

Info

Publication number
RU2778380C2
RU2778380C2 RU2019145083A RU2019145083A RU2778380C2 RU 2778380 C2 RU2778380 C2 RU 2778380C2 RU 2019145083 A RU2019145083 A RU 2019145083A RU 2019145083 A RU2019145083 A RU 2019145083A RU 2778380 C2 RU2778380 C2 RU 2778380C2
Authority
RU
Russia
Prior art keywords
text
client device
confidence score
tree
leaf
Prior art date
Application number
RU2019145083A
Other languages
Russian (ru)
Other versions
RU2019145083A3 (en
RU2019145083A (en
Inventor
Павел Александрович Зеленко
Original Assignee
Общество С Ограниченной Ответственностью «Яндекс»
Filing date
Publication date
Application filed by Общество С Ограниченной Ответственностью «Яндекс» filed Critical Общество С Ограниченной Ответственностью «Яндекс»
Priority to RU2019145083A priority Critical patent/RU2778380C2/en
Priority to US17/035,207 priority patent/US11289095B2/en
Publication of RU2019145083A publication Critical patent/RU2019145083A/en
Publication of RU2019145083A3 publication Critical patent/RU2019145083A3/ru
Application granted granted Critical
Publication of RU2778380C2 publication Critical patent/RU2778380C2/en

Links

Images

Abstract

FIELD: speech recognition.
SUBSTANCE: group of inventions relates to the field of speech recognition; it can be used for speech conversion into text. The method contains stages, at which a user statement corresponding to speech is received, the first prediction text corresponding to the user statement and the first reliability indicator corresponding to the first prediction text are determined, using a local graph, the user statement is transmitted to a server, the second prediction text corresponding to the user statement and the second reliability indicator corresponding to the second prediction text are received from the server, if the first reliability indicator is higher than the second reliability indicator, the first prediction text is output.
EFFECT: increase in the accuracy of recognition.
17 cl, 8 dwg

Description

[001] Настоящая технология относится к распознаванию речи в целом и, более конкретно, к способу и системе для перевода речи в текст.[001] The present technology relates to speech recognition in general, and more specifically, to a method and system for translating speech into text.

УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE INVENTION

[002] Распознавание речи может быть выполнено устройством, чтобы сделать взаимодействие пользователя с устройством более легким и естественным. Вместо того, чтобы вводить текст или вводить команды через сенсорный экран, пользователь может управлять устройством своей речью. Для перевода речи пользователя в текст были разработаны различные методы. Модель, включающая в себя словарь, может быть использована для идентификации текста, который произнес пользователь.[002] Speech recognition can be performed by the device to make user interaction with the device easier and more natural. Instead of entering text or entering commands through the touch screen, the user can control the device with their speech. Various methods have been developed to translate user speech into text. A model that includes a dictionary can be used to identify the text that the user has spoken.

[003] Модель может быть разработана с использованием корпуса текста, например, текста, собранного из словарей и других книг, газет и журналов и т.д. Модель может указывать вероятность возникновения некоторого конкретного слова в речи. Модель может считаться «универсальной» моделью и использоваться для многочисленных устройств. Например, для всех носителей английского языка из США может быть разработана единая модель. Хотя эти универсальные модели могут быть использованы для большого числа пользователей, они не являются персонализированными для каждого пользователя.[003] The model can be developed using a corpus of text, such as text collected from dictionaries and other books, newspapers and magazines, and so on. The model may indicate the probability of occurrence of some particular word in speech. The model can be considered a "universal" model and can be used for numerous devices. For example, a single model could be developed for all US English speakers. Although these generic models can be used for a large number of users, they are not personalized for each user.

[004] В патенте US 9,147,395, выданном 29 сентября 2015 года на имя LG Electronics Inc., описан мобильный терминал и используемый в нем способ распознавания речи. Способ распознавания речи может включать в себя прием речи пользователя; предоставление принятой речи первому средству распознавания речи, предоставленному на сервере, и второму средству распознавания речи, предоставленному в мобильном терминале; получение первых данных распознавания речи в результате распознавания принятой речи первым средством распознавания речи; получение вторых данных распознавания речи в результате распознавания принятой речи вторым средством распознавания речи; оценку функции, соответствующей намерению пользователя, основываясь на по меньшей мере одних из первых и вторых данных распознавания речи; вычисление подобия между первыми и вторыми данными распознавания речи, когда для оцениваемой функции требуется персональная информация; и выбор одних из первых и вторых данных распознавания речи на основе вычисленного подобия.[004] US Pat. No. 9,147,395, issued September 29, 2015 to LG Electronics Inc., describes a mobile terminal and a voice recognition method used therein. The speech recognition method may include receiving the user's speech; providing the received speech to a first speech recognizer provided in the server and a second speech recognizer provided in the mobile terminal; obtaining first speech recognition data as a result of recognizing the received speech by the first speech recognizer; obtaining second speech recognition data as a result of recognizing the received speech by the second speech recognizer; evaluating a function corresponding to the user's intent based on at least one of the first and second speech recognition data; calculating similarity between the first and second speech recognition data when the evaluated function requires personal information; and selecting one of the first and second speech recognition data based on the calculated similarity.

[005] Публикация US 2014/0136210 A1 патентной заявки, поданной 14 ноября 2012 года на имя Nuance Communications Inc., описывает, что персонализация распознавания речи при одновременном сохранении конфиденциальности пользовательских данных достигается путем передачи данных, ассоциированных с принятой речью, в службу распознавания речи и приема результата от службы распознавания речи. Результат службы распознавания речи генерируется исходя из общей языковой модели речи. Система генерирует конечный автомат ввода из результата распознавания речи и формирует конечный автомат ввода с конечным автоматом редактирования телефона, чтобы получить результирующий конечный автомат.Система формирует результирующий конечный автомат с конечным автоматом пользовательских данных, чтобы получить второй результирующий конечный автомат, и использует лучший путь через второй результирующий конечный автомат для получения характерного для пользователя результата распознавания речи.[005] Patent Application Publication US 2014/0136210 A1, filed Nov. 14, 2012 to Nuance Communications Inc., describes that personalization of speech recognition while maintaining the privacy of user data is achieved by passing data associated with received speech to a speech recognition service. and receiving a result from the speech recognition service. The result of the speech recognition service is generated based on the general language model of speech. The system generates an input state machine from the speech recognition result, and generates an input state machine with the phone edit state machine to obtain the resulting state machine. The system generates the resulting state machine with the user data state machine to obtain the second resulting state machine, and uses the best path through the second the resulting state machine for obtaining a user-specific speech recognition result.

[006] Публикация US 2015/0081294 A1 патентной заявки, поданной 18 сентября 2014 года компанией Maluuba Inc., описывает систему, способ и компьютерную программу, предназначенные для генерирования настраиваемых текстовых представлений звуковых команд. Первый модуль распознавания речи может быть использован для генерирования первого текстового представления звуковой команды на основе общей языковой грамматики. Второй модуль распознавания речи может быть использован для генерирования второго текстового представления звуковой команды, причем второй модуль включает в себя настраиваемую языковую грамматику, которая может включать в себя контакты для некоторого конкретного пользователя. Извлечение объектов применяется ко второму текстовому представлению и объекты проверяются по файлу, содержащему личностный языковой стиль. Если объекты найдены в характерном для пользователя языке, два текстовых представления могут быть объединены в объединенное текстовое представление, а распознавание именованных объектов может быть выполнено снова, чтобы извлечь дополнительные объекты.[006] Patent Application Publication US 2015/0081294 A1, filed September 18, 2014 by Maluuba Inc., describes a system, method, and computer program for generating customizable text representations of audio commands. The first speech recognition module may be used to generate a first textual representation of the audio command based on a common language grammar. A second speech recognition module may be used to generate a second textual representation of the audio command, the second module including a custom language grammar that may include contacts for some particular user. Object extraction is applied to the second text representation and the objects are checked against the file containing the personal language style. If objects are found in the user's native language, the two text representations can be combined into a combined text representation, and named object recognition can be performed again to retrieve additional objects.

СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

[007] Разработчики настоящей технологии осознали по меньшей мере одну техническую проблему, ассоциированную с подходами в предшествующем уровне техники.[007] The developers of the present technology have recognized at least one technical problem associated with prior art approaches.

[008] Настоящая технология относится к распознаванию речи и, более конкретно, к способам и системам перевода речи в текст. Пользователи клиентских устройств могут включать личные данные в свою речь. Некоторые из этих личных данных могут храниться на их клиентских устройствах. Например, пользователь может запросить вызов контакта, сохраненного на его клиентском устройстве, или воспроизведение песни, хранящейся на его клиентском устройстве. Универсальная модель может не работать правильно при интерпретации таких запросов. Универсальная модель может не отражать того, что пользователь с большей вероятностью, чем популяция в целом, произносит слова в своих личных данных. Пользовательский опыт может быть улучшен, если система для перевода речи в текст адаптируется под личные данные пользователя.[008] The present technology relates to speech recognition and, more specifically, to methods and systems for translating speech into text. Users of client devices may include personal data in their speech. Some of this personal data may be stored on their client devices. For example, the user may request to call a contact stored on his client device or play a song stored on his client device. The generic model may not work correctly when interpreting such queries. The universal model may not reflect that a user is more likely than the general population to pronounce the words in their personal data. The user experience can be improved if the system for translating speech into text is adapted to the user's personal data.

[009] Как уже упоминалось выше, модели распознавания речи обычно основаны на универсальном корпусе текста и применяются для большого числа пользователей. Модель, адаптированная под конкретного человека, может обеспечивать более точные результаты.[009] As mentioned above, speech recognition models are usually based on a universal text corpus and are applied to a large number of users. A model tailored to a specific person may provide more accurate results.

[0010] Система перевода речи в текст, которая использует универсальную модель, может быть дополнена второй моделью, которая упоминается в данном документе как локальный граф. Локальный граф может быть характерным для отдельного пользователя и может быть сгенерирован с использованием текста, хранящегося на клиентском устройстве этого пользователя. Локальный граф может храниться на клиентском устройстве.[0010] A speech-to-text translation system that uses a generic model may be supplemented by a second model, which is referred to herein as a local graph. The local graph may be specific to an individual user and may be generated using text stored on that user's client device. The local graph may be stored on the client device.

[0011] После приема пользовательского высказывания, например, посредством микрофона в клиентском устройстве, пользовательское высказывание может быть введено в локальный граф и универсальный граф. Как локальный граф, так и универсальный граф могут выводить прогнозный текст для пользовательского высказывания и/или показатель достоверности, соответствующий прогнозу. Показатели достоверности могут сравниваться, и может быть выбран либо прогнозный текст из локального графа, либо прогнозный текст из универсального графа.[0011] After receiving a user utterance, for example, via a microphone in a client device, the user utterance may be entered into a local graph and a universal graph. Both the local graph and the universal graph can output predictive text for the user's statement and/or a confidence score corresponding to the prediction. The confidence scores can be compared and either the predictive text from the local graph or the predictive text from the generic graph can be selected.

[0012] Согласно первому широкому аспекту настоящей технологии обеспечен способ перевода речи в текст, причем речь принята клиентским устройством. Способ является исполняемым на клиентском устройстве и содержит: прием пользовательского высказывания, соответствующего речи; определение на основе локального графа, сохраненного клиентским устройством, первого прогнозного текста, соответствующего пользовательскому высказыванию, и первого показателя достоверности, соответствующего первому прогнозному тексту, при этом локальный граф содержит дерево, при этом каждый лист этого дерева соответствует слову, и при этом локальный граф генерируется на основе текста, сохраненного клиентским устройством; передачу на сервер пользовательского высказывания; прием от сервера второго прогнозного текста, соответствующего пользовательскому высказыванию, и второго показателя достоверности, соответствующего второму прогнозному тексту; сравнение первого показателя достоверности со вторым показателем достоверности; и после определения того, что первый показатель достоверности больше, чем второй показатель достоверности, вывод первого прогнозного текста.[0012] According to a first broad aspect of the present technology, a method is provided for translating speech into text, wherein the speech is received by a client device. The method is executable on a client device and comprises: receiving a user statement corresponding to speech; determining, based on the local graph stored by the client device, a first predictive text corresponding to the user utterance and a first confidence score corresponding to the first predictive text, wherein the local graph contains a tree, each leaf of the tree corresponding to a word, and wherein the local graph is generated based on text stored by the client device; transferring a user statement to the server; receiving from the server a second predictive text corresponding to the user statement and a second confidence indicator corresponding to the second predictive text; comparing the first confidence score with the second confidence score; and after determining that the first confidence score is greater than the second confidence score, outputting the first predictive text.

[0013] В некоторых реализациях упомянутого способа первый узел в каждой ветви дерева содержит первую букву слова.[0013] In some implementations of the above method, the first node in each branch of the tree contains the first letter of the word.

[0014] В некоторых реализациях упомянутого способа каждый последующий узел после первого узла содержит следующую букву слова.[0014] In some implementations of the above method, each subsequent node after the first node contains the next letter of the word.

[0015] В некоторых реализациях упомянутого способа первый лист в дереве содержит первое спряжение слова, при этом второй лист в дереве содержит второе спряжение упомянутого слова, причем первый лист и второй лист имеют общий родительский узел в дереве.[0015] In some implementations of the above method, the first leaf in the tree contains the first conjugation of the word, while the second leaf in the tree contains the second conjugation of the said word, and the first leaf and the second leaf have a common parent node in the tree.

[0016] В некоторых реализациях упомянутого способа каждый лист дерева ассоциирован с показателем достоверности, при этом показатель достоверности указывает частоту, с которой слово, соответствующее соответствующему листу, встречается в тексте, хранимом клиентским устройством.[0016] In some implementations of the above method, each leaf of the tree is associated with a confidence score, wherein the confidence score indicates the frequency with which the word corresponding to the corresponding leaf occurs in the text stored by the client device.

[0017] В некоторых реализациях упомянутого способа определение первого прогнозного текста содержит определение листа дерева, который соответствует пользовательскому высказыванию, при этом первый показатель достоверности содержит показатель достоверности, соответствующий этому листу.[0017] In some implementations of the above method, the definition of the first predictive text contains the definition of a leaf of the tree that corresponds to the user statement, while the first confidence indicator contains a confidence score corresponding to this leaf.

[0018] В некоторых реализациях упомянутого способа локальный граф генерируется посредством: применения текста, сохраненного клиентским устройством, к нормализатору (“normalizer”), тем самым генерируя нормализованный текст; применения текста, сохраненного клиентским устройством, и нормализованного текста к инфлектору (“inflector”), тем самым генерируя инфлектированный текст; и генерирования локального графа на основе текста, сохраненного клиентским устройством, нормализованного текста и инфлектированного текста.[0018] In some implementations of said method, a local graph is generated by: applying text stored by the client device to a normalizer (“normalizer”), thereby generating normalized text; applying the text stored by the client device and the normalized text to the inflector (“inflector”), thereby generating the inflectored text; and generating a local graph based on the text stored by the client device, the normalized text, and the inflected text.

[0019] В некоторых реализациях упомянутого способа нормализатор преобразует цифры в тексте, сохраненном клиентским устройством, в текст.[0019] In some implementations of the mentioned method, the normalizer converts the digits in the text stored by the client device into text.

[0020] В некоторых реализациях упомянутого способа инфлектор принимает слово и генерирует множество форм этого слова.[0020] In some implementations of the above method, the inflector takes a word and generates multiple forms of that word.

[0021] В некоторых реализациях упомянутого способа текст, сохраненный клиентским устройством, содержит список контактов.[0021] In some implementations of the above method, the text stored by the client device contains a list of contacts.

[0022] В некоторых реализациях упомянутого способа текст, сохраненный клиентским устройством, соответствует музыке, сохраненной клиентским устройством.[0022] In some implementations of the above method, the text stored by the client device corresponds to the music stored by the client device.

[0023] В некоторых реализациях упомянутого способа локальный граф персонализирован для пользователя клиентского устройства.[0023] In some implementations of the above method, the local graph is personalized for the user of the client device.

[0024] В некоторых реализациях упомянутого способа локальный граф представляет собой дерево n-грамм, при этом каждый узел в локальном графе соответствует отдельной n-грамме.[0024] In some implementations of the above method, the local graph is a tree of n-grams, with each node in the local graph corresponding to a separate n-gram.

[0025] Согласно другому широкому аспекту настоящей технологии обеспечен способ перевода речи в текст, причем речь принята клиентским устройством. Способ является исполняемым на сервере и содержит: прием от клиентского устройства пользовательского высказывания, соответствующего речи; определение на основе графа, первого прогнозного текста, соответствующего пользовательскому высказыванию, и первого показателя достоверности, соответствующего первому прогнозному тексту, при этом граф содержит дерево, при этом каждый лист этого дерева соответствует слову; прием от клиентского устройства второго прогнозного текста, соответствующего пользовательскому высказыванию, и второго показателя достоверности, соответствующего второму прогнозному тексту, при этом второй прогнозный текст был определен клиентским устройством, при этом второй прогнозный текст был определен на основе локального графа, хранимого клиентским устройством, при этом локальный граф был сгенерирован на основе текста, хранимого клиентским устройством; сравнение первого показателя достоверности со вторым показателем достоверности; и после определения того, что первый показатель достоверности больше, чем второй показатель достоверности, передачу первого прогнозного текста на клиентское устройство.[0025] According to another broad aspect of the present technology, a method is provided for translating speech into text, wherein the speech is received by a client device. The method is executable on the server and comprises: receiving from the client device a user statement corresponding to speech; determining, based on the graph, a first predictive text corresponding to the user utterance and a first confidence score corresponding to the first predictive text, the graph comprising a tree, each leaf of the tree corresponding to a word; receiving from the client device a second prediction text corresponding to the user utterance and a second confidence indicator corresponding to the second prediction text, wherein the second prediction text was determined by the client device, wherein the second prediction text was determined based on a local graph stored by the client device, wherein the local graph was generated based on the text stored by the client device; comparing the first confidence score with the second confidence score; and after determining that the first confidence score is greater than the second confidence score, transmitting the first predictive text to the client device.

[0026] В некоторых реализациях упомянутого способа первый лист в дереве содержит первое спряжение слова, а второй лист в дереве содержит второе спряжение упомянутого слова, причем первый лист и второй лист имеют общий родительский узел в дереве.[0026] In some implementations of the above method, the first leaf in the tree contains the first conjugation of the word, and the second leaf in the tree contains the second conjugation of the said word, and the first leaf and the second leaf have a common parent node in the tree.

[0027] В некоторых реализациях упомянутого способа каждый лист дерева ассоциирован с показателем достоверности, при этом показатель достоверности указывает частоту, с которой слово, соответствующее соответствующему листу, встречается в тексте, хранимом клиентским устройством.[0027] In some implementations of the method, each leaf of the tree is associated with a confidence score, where the confidence score indicates the frequency with which the word corresponding to the corresponding leaf occurs in the text stored by the client device.

[0028] Согласно другому широкому аспекту настоящей технологии обеспечен способ перевода речи в текст, причем речь принята клиентским устройством. Способ является исполняемым на сервере и содержит: прием от клиентского устройства пользовательского высказывания, соответствующего речи; определение на основе графа, первого прогнозного текста, соответствующего пользовательскому высказыванию, и первого показателя достоверности, соответствующего первому прогнозному тексту, при этом граф содержит дерево, при этом каждый лист этого дерева соответствует слову; и передачу клиентскому устройству первого прогнозного текста и первого показателя достоверности для сравнения первого прогнозного текста и первого показателя достоверности со вторым прогнозным текстом и вторым показателем достоверности, при этом второй прогнозный текст и второй показатель достоверности был определен клиентским устройством на основе локального графа, хранимого клиентским устройством, при этом локальный граф был сгенерирован на основе текста, хранимого клиентским устройством.[0028] According to another broad aspect of the present technology, a method is provided for translating speech into text, wherein the speech is received by a client device. The method is executable on the server and comprises: receiving from the client device a user statement corresponding to speech; determining, based on the graph, a first predictive text corresponding to the user utterance and a first confidence score corresponding to the first predictive text, the graph comprising a tree, each leaf of the tree corresponding to a word; and transmitting to the client device the first prediction text and the first confidence score for comparing the first prediction text and the first confidence score with the second prediction text and the second confidence score, wherein the second prediction text and the second confidence score have been determined by the client device based on a local graph stored by the client device. , while the local graph was generated based on the text stored by the client device.

[0029] В некоторых реализациях упомянутого способа каждый лист дерева ассоциирован с показателем достоверности.[0029] In some implementations of the above method, each leaf of the tree is associated with a confidence score.

[0030] В некоторых реализациях упомянутого способа граф соответствует графу, используемому для перевода речи в текст для множества клиентских устройств, при этом локальный граф является уникальным для клиентского устройства.[0030] In some implementations of said method, the graph corresponds to a graph used to translate speech to text for multiple client devices, with the local graph being unique to the client device.

[0031] В некоторых реализациях упомянутого способа локальный граф был сгенерирован на основе текста, хранимого клиентским устройством, нормализованного текста и инфлектированного текста, при этом нормализованный текст был сгенерирован путем применения текста, хранимого клиентским устройством, к нормализатору, а инфлектированный текст был сгенерирован путем применения текста, хранимого клиентским устройством, и нормализованного текста к инфлектору.[0031] In some implementations of said method, a local graph was generated based on the text stored by the client device, the normalized text, and the inflected text, wherein the normalized text was generated by applying the text stored by the client device to the normalizer, and the inflected text was generated by applying the text stored by the client device and the normalized text to the inflector.

[0032] Согласно другому широкому аспекту настоящей технологии обеспечен способ перевода речи в текст, причем речь принята клиентским устройством. Способ является исполняемым на клиентском устройстве и содержит: прием пользовательского высказывания, соответствующего речи; определение на основе локального графа, хранимого клиентским устройством, прогнозного текста, соответствующего пользовательскому высказыванию, и показателя достоверности, соответствующего прогнозному тексту, при этом локальный граф содержит дерево, при этом каждый лист этого дерева соответствует слову, и при этом локальный граф генерируется на основе текста, хранимого клиентским устройством; сравнение показателя достоверности с пороговым показателем достоверности; определение на основе порогового показателя достоверности, следует ли передавать пользовательское высказывание на сервер; после определения того, что показатель достоверности удовлетворяет пороговому показателю достоверности, определение, что пользовательское высказывание не следует передавать на сервер; и вывод прогнозного текста.[0032] According to another broad aspect of the present technology, a method is provided for translating speech into text, wherein the speech is received by a client device. The method is executable on a client device and comprises: receiving a user statement corresponding to speech; determining, based on the local graph stored by the client device, the predictive text corresponding to the user statement and the confidence score corresponding to the predictive text, where the local graph contains a tree, where each leaf of this tree corresponds to a word, and where the local graph is generated based on the text , stored by the client device; comparing a confidence score with a threshold confidence score; determining, based on the confidence threshold, whether the user statement should be transmitted to the server; after determining that the confidence score satisfies the threshold confidence score, determining that the user statement should not be transmitted to the server; and output of predictive text.

[0033] В контексте настоящего описания «сервер» представляет собой систему и/или компьютерную программу, которая работает на надлежащем аппаратном обеспечении и способна принимать запросы (например, от электронных устройств) по сети и выполнять эти запросы или вызывать выполнение этих запросов. Аппаратное обеспечение может быть одним физическим компьютером или одной физической компьютерной системой, но ни то, ни другое не является обязательным для настоящей технологии. В настоящем контексте использование выражения «сервер» не предназначено для обозначения того, что каждая задача (например, принимаемые инструкции или запросы) или какая-либо конкретная задача будет принята, выполнена или будет вызвана для выполнения одним и тем же сервером (т.е. одним и тем же программным и/или аппаратным обеспечением); подразумевается, что любое количество программных элементов или аппаратных устройств может быть вовлечено в прием/отправку, выполнение или вызов для выполнения любой задачи или запроса, или последствий любой задачи или запроса; и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами, причем оба этих случая включены в выражение «по меньшей мере один сервер».[0033] As used herein, a "server" is a system and/or computer program that runs on appropriate hardware and is capable of receiving requests (eg, from electronic devices) over a network and fulfilling or causing those requests to be executed. The hardware may be one physical computer or one physical computer system, but neither is required for the present technology. In the present context, the use of the term "server" is not intended to imply that every task (e.g., instructions or requests received) or any particular task will be accepted, executed, or called for execution by the same server (i.e., the same software and/or hardware); it is understood that any number of software elements or hardware devices may be involved in receiving/sending, executing or invoking to perform any task or request, or the consequences of any task or request; and all of this software and hardware may be a single server or multiple servers, both of which are included in the expression "at least one server".

[0034] В контексте настоящего описания "электронное устройство" представляет собой любое компьютерное оборудование, которое способно выполнять программное обеспечение, которое является надлежащим для соответствующей поставленной задачи. Таким образом, некоторые (неограничивающие) примеры электронных устройств включают в себя персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.д.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует отметить, что устройство, выступающее в качестве электронного устройства в настоящем контексте, не исключается из возможности выступать в качестве сервера для других электронных устройств. Использование выражения "электронное устройство" не исключает использования многочисленных электронных устройств при приеме/отправке, выполнении или вызове для выполнения какой-либо задачи или запроса, или последствий любой задачи или запроса, или этапов любого описанного в данном документе способа.[0034] As used herein, an "electronic device" is any computer equipment that is capable of executing software that is appropriate for its respective task. Thus, some (non-limiting) examples of electronic devices include personal computers (desktops, laptops, netbooks, etc.), smartphones and tablets, and network equipment such as routers, switches, and gateways. It should be noted that a device acting as an electronic device in the present context is not excluded from acting as a server for other electronic devices. The use of the term "electronic device" does not preclude the use of multiple electronic devices in receiving/sending, performing or invoking to perform any task or request, or the consequences of any task or request, or the steps of any method described herein.

[0035] В контексте настоящего описания "база данных" представляет собой любую структурированную совокупность данных, независимо от ее конкретной структуры, программное обеспечение для администрирования базы данных, или компьютерное аппаратное обеспечение, на котором данные хранятся, реализуются или их делают доступными для использования иным образом. База данных может находиться на том же аппаратном обеспечении, что и процесс, который хранит или использует информацию, хранящуюся в базе данных, или она может находиться на отдельном аппаратном обеспечении, например, на выделенном сервере или множестве серверов.[0035] As used herein, a "database" is any structured collection of data, regardless of its specific structure, database administration software, or computer hardware on which data is stored, implemented, or otherwise made available for use. . The database may reside on the same hardware as the process that stores or uses the information stored in the database, or it may reside on separate hardware such as a dedicated server or multiple servers.

[0036] В контексте настоящего описания выражение "информация" включает в себя информацию любого характера или вида, который способен храниться в базе данных любым образом. Таким образом, информация включает в себя, но без ограничения, аудиовизуальные произведения (изображения, фильмы, звуковые записи, презентации и т.д.), данные (данные о местоположении, численные данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, электронные таблицы и т.д.[0036] In the context of the present description, the expression "information" includes information of any nature or form that is capable of being stored in the database in any way. Thus, information includes, but is not limited to, audiovisual works (images, films, sound recordings, presentations, etc.), data (location data, numerical data, etc.), text (opinions, comments , questions, messages, etc.), documents, spreadsheets, etc.

[0037] В контексте настоящего описания предполагается, что выражение "используемый компьютером носитель информации" включает в себя носители любого типа и вида, в том числе RAM, ROM, диски (CD-ROM, DVD, дискеты, накопители на жестких дисках и т.д.), USB-ключи, твердотельные накопители, ленточные накопители и т.д.[0037] In the context of the present description, the expression "media used by the computer" is intended to include media of any type and form, including RAM, ROM, disks (CD-ROMs, DVDs, floppy disks, hard disk drives, etc.), etc.), USB keys, SSDs, tape drives, etc.

[0038] В контексте настоящего описания, если прямо не предусмотрено иное, "указание" информационного элемента может быть самим информационным элементом или указателем, ссылкой, гиперссылкой или другим опосредованным механизмом, позволяющим получателю такого указания найти местоположение в сети, памяти, базе данных или другом считываемом компьютером носителе, из которого информационный элемент может быть извлечен. Например, указание документа может включать в себя сам документ (т.е. его содержимое), или оно может быть уникальным дескриптором документа, идентифицирующим файл относительно некоторой конкретной файловой системы, или некоторым другим средством направления получателя такого указания в местоположение в сети, адрес в памяти, таблицу в базе данных или в иное местоположение, в котором можно осуществить доступ к файлу. Специалист в данной области поймет, что степень точности, требуемая в таком указании, зависит от степени какого-либо предварительного понимания того, какая интерпретация будет дана информации, обмениваемой между отправителем и получателем этого указания. Например, если до связи между отправителем и получателем понимается, что указание информационного элемента будет иметь форму ключа базы данных для записи в некоторой конкретной таблице предопределенной базы данных, содержащей информационный элемент, то отправка ключа базы данных является всем, что требуется для эффективной передачи информационного элемента получателю, даже если сам информационный элемент не был передан между отправителем и получателем указания.[0038] As used herein, unless expressly provided otherwise, an "indication" of an information element may be the information element itself or a pointer, link, hyperlink, or other indirect mechanism that allows the recipient of such indication to locate a location in a network, memory, database, or other a computer-readable medium from which the information element can be retrieved. For example, a document designation may include the document itself (i.e., its contents), or it may be a unique document descriptor identifying a file with respect to some particular file system, or some other means of directing the recipient of such designation to a location on the network, an address in memory, a table in a database, or some other location where the file can be accessed. One skilled in the art will appreciate that the degree of accuracy required in such an indication depends on the degree of any prior understanding of what interpretation will be given of the information exchanged between the sender and recipient of that indication. For example, if prior to communication between sender and receiver it is understood that the indication of the information element will be in the form of a database key to be entered in some particular table of the predefined database containing the information element, then sending the database key is all that is required to efficiently transmit the information element. recipient, even if the information element itself has not been transmitted between the sender and recipient of the indication.

[0039] В контексте настоящего описания слова "первый", "второй", "третий" и т.д. используются в качестве прилагательных только для того, чтобы позволить отличать существительные, которые они модифицируют, друг от друга, а не для описания какой-либо конкретной взаимосвязи между такими существительными. Таким образом, например, следует понимать, что использование терминов "первый сервер" и "третий сервер" не подразумевает какого-либо конкретного порядка, типа, хронологии, иерархии или ранжирования (например) таких серверов, равно как и их использование (само по себе) не означает, что какой-либо "второй сервер" должен обязательно существовать в любой определенной ситуации. Кроме того, как обсуждается в других контекстах данного документа, ссылка на "первый" элемент и "второй" элемент не исключает того, что эти два элемента фактически являются одним и тем же элементом реального мира. Таким образом, например, в некоторых случаях "первый" сервер и "второй" сервер могут быть одним и тем же программным обеспечением и/или аппаратным обеспечением, и/или они могут совместно использовать программное обеспечение и/или аппаратное обеспечение. В других случаях они могут представлять собой разное программное обеспечение и/или аппаратное обеспечение.[0039] In the context of the present description, the words "first", "second", "third", etc. are used as adjectives only to allow the nouns they modify to be distinguished from each other, and not to describe any particular relationship between such nouns. Thus, for example, it should be understood that the use of the terms "first server" and "third server" does not imply any particular order, type, chronology, hierarchy or ranking (for example) of such servers, nor does their use (in itself ) does not mean that some "second server" must necessarily exist in any given situation. Also, as discussed elsewhere in this document, reference to a "first" element and a "second" element does not exclude that the two elements are in fact the same real world element. Thus, for example, in some cases, the "first" server and the "second" server may be the same software and/or hardware, and/or they may share software and/or hardware. In other cases, they may be different software and/or hardware.

[0040] Каждая из реализаций настоящей технологии обладает по меньшей мере одним из вышеупомянутых аспектов и/или целей, но не обязательно имеет их все. Следует понимать, что некоторые аспекты настоящей технологии, которые возникли в попытке достичь вышеупомянутой цели, могут не удовлетворять этой цели и/или удовлетворять другим целям, которые не описаны в данном документе явным образом.[0040] Each of the implementations of the present technology has at least one of the above aspects and/or goals, but does not necessarily have them all. It should be understood that some aspects of the present technology that have arisen in an attempt to achieve the aforementioned goal may not satisfy this goal and/or satisfy other goals that are not explicitly described in this document.

[0041] Дополнительные и/или альтернативные признаки, аспекты и преимущества реализаций настоящей технологии станут очевидными из нижеследующего описания, сопроводительных чертежей и приложенной формулы изобретения.[0041] Additional and/or alternative features, aspects, and advantages of implementations of the present technology will become apparent from the following description, the accompanying drawings, and the appended claims.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

[0042] Для лучшего понимания настоящей технологии, а также других аспектов и ее дополнительных признаков, ссылка приводится на нижеследующее описание, которое должно использоваться в сочетании с сопроводительными чертежами, на которых:[0042] For a better understanding of the present technology, as well as other aspects and additional features thereof, reference is made to the following description, which is to be used in conjunction with the accompanying drawings, in which:

[0043] Фигура 1 представляет собой иллюстрацию компонентов и признаков вычислительного устройства в соответствии с неограничивающими вариантами осуществления настоящей технологии.[0043] Figure 1 is an illustration of the components and features of a computing device in accordance with non-limiting embodiments of the present technology.

[0044] Фигура 2 иллюстрирует схему системы перевода речи в текст, реализованной в соответствии с неограничивающими вариантами осуществления настоящей технологии.[0044] Figure 2 illustrates a diagram of a speech-to-text translation system implemented in accordance with non-limiting embodiments of the present technology.

[0045] Фигура 3 иллюстрирует схему системы обработки пользовательского высказывания в соответствии с неограничивающими вариантами осуществления настоящей технологии.[0045] Figure 3 illustrates a diagram of a user utterance processing system in accordance with non-limiting embodiments of the present technology.

[0046] Фигура 4 иллюстрирует граф в соответствии с неограничивающими вариантами осуществления настоящей технологии.[0046] Figure 4 illustrates a graph in accordance with non-limiting embodiments of the present technology.

[0047] Фигура 5 иллюстрирует схему системы генерирования локального графа в соответствии с неограничивающими вариантами осуществления настоящей технологии.[0047] Figure 5 illustrates a diagram of a local graph generation system in accordance with non-limiting embodiments of the present technology.

[0048] Фигуры 6, 7 и 8 иллюстрируют блок-схему последовательности операций способа перевода речи в текст в соответствии с неограничивающими вариантами осуществления настоящей технологии.[0048] Figures 6, 7, and 8 illustrate a flowchart of a method for translating speech into text in accordance with non-limiting embodiments of the present technology.

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

[0049] Приведенные в данном документе примеры и условные формулировки призваны главным образом помочь читателю понять принципы настоящей технологии, а не ограничить ее объем такими конкретно приведенными примерами и условиями. Должно быть понятно, что специалисты в данной области смогут разработать различные механизмы, которые, хоть и не описаны в данном документе явным образом, тем не менее воплощают принципы настоящей технологии и включаются в ее суть и объем.[0049] The examples and conventions provided herein are intended primarily to help the reader understand the principles of the present technology, and not to limit its scope to such specific examples and terms. It should be understood that those skilled in the art will be able to develop various mechanisms that, although not explicitly described in this document, nevertheless embody the principles of the present technology and are included in its essence and scope.

[0050] Кроме того, нижеследующее описание может описывать реализации настоящей технологии в относительно упрощенном виде для целей упрощения понимания. Специалисты в данной области поймут, что различные реализации настоящей технологии могут иметь большую сложность.[0050] In addition, the following description may describe implementations of the present technology in a relatively simplified manner for purposes of ease of understanding. Those skilled in the art will appreciate that various implementations of the present technology may be more complex.

[0051] В некоторых случаях также могут быть изложены примеры модификаций настоящей технологии, которые считаются полезными. Это делается лишь для содействия понимаю и, опять же, не для строгого определения объема или границ настоящей технологии. Эти модификации не являются исчерпывающим списком, и специалист в данной области может осуществлять другие модификации, все еще оставаясь при этом в рамках объема настоящей технологии. Кроме того, случаи, когда примеры модификаций не приводятся, не следует толковать так, что никакие модификации не могут быть осуществлены и/или что описанное является единственным способом реализации такого элемента настоящей технологии.[0051] In some cases, examples of modifications to the present technology that are considered useful may also be set forth. This is only to aid understanding and, again, not to rigorously define the scope or boundaries of the present technology. These modifications are not an exhaustive list, and other modifications may be made by one skilled in the art while still remaining within the scope of the present technology. In addition, cases where examples of modifications are not given should not be interpreted to mean that no modifications can be made and/or that what is described is the only way to implement such an element of the present technology.

[0052] Кроме того, все содержащиеся в данном документе утверждения, в которых указываются принципы, аспекты и реализации настоящей технологии, а также их конкретные примеры, призваны охватить как структурные, так и функциональные эквиваленты, вне зависимости от того, известны ли они в настоящее время или будут разработаны в будущем. Таким образом, например, специалисты в данной области осознают, что любые блок-схемы в данном документе представляют концептуальные виды иллюстративной схемы, воплощающей принципы настоящей технологии. Аналогичным образом, будет понятно, что любые блок-схемы, схемы последовательностей операций, схемы изменения состояний, псевдокоды и подобное представляют различные процессы, которые могут быть по сути представлены на считываемых компьютером носителях и исполнены компьютером или процессором вне зависимости от того, показан такой компьютер или процессор явным образом или нет.[0052] In addition, all statements contained herein that indicate principles, aspects, and implementations of the present technology, as well as specific examples thereof, are intended to cover both structural and functional equivalents, whether or not they are currently known. time or will be developed in the future. Thus, for example, those skilled in the art will appreciate that any block diagrams herein represent conceptual views of an illustrative circuit embodying the principles of the present technology. Likewise, it will be understood that any and all flowcharts, flow charts, state transition diagrams, pseudocodes, and the like represent various processes that may per se be represented on computer-readable media and executed by a computer or processor, regardless of whether such a computer is depicted. or processor explicitly or not.

[0053] Функции различных элементов, показанных на фигурах, в том числе любого функционального блока, помеченного как «процессор» или «графический процессор», могут быть обеспечены с помощью специального аппаратного обеспечения, а также аппаратного обеспечения, способного исполнять программное обеспечение, в сочетании с надлежащим программным обеспечением. При обеспечении процессором функции могут быть обеспечены одним выделенным процессором, одним совместно используемым процессором и/или множеством отдельных процессоров, некоторые из которых могут быть совместно используемыми. В некоторых вариантах осуществления настоящей технологии процессор может быть процессором общего назначения, таким как центральный процессор (CPU) или процессор, выделенный для конкретной цели, например, графический процессор (GPU). Кроме того, явное использование термина "процессор" или "контроллер" не должно истолковываться как относящееся исключительно к аппаратному обеспечению, способному исполнять программное обеспечение, и может в неявной форме включать в себя, без ограничений, аппаратное обеспечение цифрового сигнального процессора (DSP), сетевой процессор, интегральную схему специального назначения (ASIC), программируемую пользователем вентильную матрицу (FPGA), постоянную память (ROM) для хранения программного обеспечения, оперативную память (RAM) и/или энергонезависимое хранилище. Другое аппаратное обеспечение, традиционное и/или специализированное, также может быть включено в состав.[0053] The functions of the various elements shown in the figures, including any functional block labeled "processor" or "graphics processing unit", can be provided using special hardware, as well as hardware capable of executing software, in combination with the right software. When provided by a processor, the functions may be provided by one dedicated processor, one shared processor, and/or multiple separate processors, some of which may be shared. In some embodiments of the present technology, the processor may be a general purpose processor such as a central processing unit (CPU) or a processor dedicated to a specific purpose such as a graphics processing unit (GPU). In addition, explicit use of the term "processor" or "controller" should not be construed as referring solely to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (DSP) hardware, network a processor, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), read-only memory (ROM) for storing software, random access memory (RAM), and/or non-volatile storage. Other hardware, traditional and/or specialized, may also be included.

[0054] Программные модули, или просто модули, в качестве которых может подразумеваться программное обеспечение, могут быть представлены в настоящем документе как любая комбинация элементов блок-схемы последовательности операций или других элементов, указывающих выполнение этапов процесса и/или текстовое описание. Такие модули могут выполняться аппаратным обеспечением, которое показано явно или неявно.[0054] Software modules, or simply modules, which may be understood as software, may be represented herein as any combination of flowchart elements or other elements indicating the execution of process steps and/or a textual description. Such modules may be implemented in hardware that is shown explicitly or implicitly.

[0055] Учитывая эти основополагающие вещи, рассмотрим некоторые неограничивающие примеры, чтобы проиллюстрировать различные реализации аспектов настоящей технологии.[0055] With these fundamentals in mind, consider some non-limiting examples to illustrate various implementations of aspects of the present technology.

[0056] Со ссылкой на фигуру 1 показано вычислительное устройство 100, подходящее для использования с некоторыми реализациями настоящей технологии. Вычислительное устройство 100 содержит различные аппаратные компоненты, в том числе один или более одноядерных или многоядерных процессоров, совместно представленных процессором 110, графический процессор (GPU) 111, твердотельный накопитель 120, оперативную память 130, интерфейс 140 дисплея и интерфейс 150 ввода/вывода.[0056] With reference to Figure 1, a computing device 100 is shown suitable for use with some implementations of the present technology. Computing device 100 includes various hardware components, including one or more single or multi-core processors collectively represented by processor 110, graphics processing unit (GPU) 111, solid state drive 120, RAM 130, display interface 140, and input/output interface 150.

[0057] Связь между различными компонентами вычислительного устройства 100 может обеспечиваться одной или несколькими внутренними и/или внешними шинами 160 (например, шиной PCI, универсальной последовательной шиной, шиной IEEE 1394 "Firewire", шиной SCSI, шиной Serial-ATA и т.д.), с которыми различные аппаратные компоненты связаны электронным образом.[0057] Communication between various components of computing device 100 may be provided by one or more internal and/or external buses 160 (eg, PCI bus, Universal Serial Bus, IEEE 1394 "Firewire" bus, SCSI bus, Serial-ATA bus, etc. .), with which various hardware components are electronically linked.

[0058] Интерфейс 150 ввода/вывода может быть связан с сенсорным экраном 190 и/или с одной или несколькими внутренними и/или внешними шинами 160. Сенсорный экран 190 может быть частью дисплея. В некоторых вариантах осуществления, сенсорный экран 190 является дисплеем. Сенсорный экран 190 может также упоминаться как экран 190. В вариантах осуществления, проиллюстрированных на фигуре 1, сенсорный экран 190 содержит аппаратное обеспечение 194 для восприятия касания (например, чувствительные к давлению ячейки, встроенные в слой дисплея, позволяющие обнаруживать физическое взаимодействие между пользователем и дисплеем) и контроллер 192 сенсорного ввода/вывода, обеспечивающий возможность связи с интерфейсом 140 дисплея и/или одной или более внутренними и/или внешними шинами 160. В некоторых вариантах осуществления интерфейс 150 ввода/вывода может быть подключен к клавиатуре (не показана), мыши (не показана) или трекпаду (не показан), позволяющим пользователю взаимодействовать с вычислительным устройством 100 в дополнение к или вместо сенсорного экрана 190. В некоторых вариантах осуществления вычислительное устройство 100 может содержать один или более микрофонов (не показаны). Микрофоны могут записывать аудио, например, пользовательские высказывания. Пользовательские высказывания могут быть переведены в команды для управления вычислительным устройством 100.[0058] I/O interface 150 may be coupled to touch screen 190 and/or one or more internal and/or external buses 160. Touch screen 190 may be part of a display. In some embodiments, the touch screen 190 is a display. Touch screen 190 may also be referred to as screen 190. In the embodiments illustrated in Figure 1, touch screen 190 includes touch sensing hardware 194 (e.g., pressure-sensitive cells embedded in the display layer to allow detection of physical interaction between the user and the display ) and a touch input/output controller 192 capable of communicating with the display interface 140 and/or one or more internal and/or external buses 160. In some embodiments, the input/output interface 150 may be connected to a keyboard (not shown), a mouse (not shown) or a trackpad (not shown) allowing a user to interact with computing device 100 in addition to or instead of touch screen 190. In some embodiments, computing device 100 may include one or more microphones (not shown). Microphones can record audio, such as user utterances. User statements may be translated into commands for controlling computing device 100.

[0059] Следует отметить, что некоторые компоненты вычислительного устройства 100 могут быть опущены в некоторых неограничивающих вариантах осуществления настоящей технологии. Например, сенсорный экран 190 может быть опущен, особенно (но не ограничиваясь этим), когда вычислительное устройство реализовано как умная колонка.[0059] It should be noted that certain components of computing device 100 may be omitted from certain non-limiting embodiments of the present technology. For example, touch screen 190 may be omitted, especially (but not limited to) when the computing device is implemented as a smart speaker.

[0060] Согласно реализациям настоящей технологии, твердотельный накопитель 120 хранит программные инструкции, подходящие для загрузки в оперативную память 130 и исполнения процессором 110 и/или GPU 111. Например, программные инструкции могут быть частью библиотеки или приложения.[0060] According to implementations of the present technology, the solid state drive 120 stores program instructions suitable for loading into main memory 130 and execution by processor 110 and/or GPU 111. For example, the program instructions may be part of a library or application.

[0061] Вычислительное устройство 100 может быть сервером, настольным компьютером, ноутбуком, планшетом, смартфоном, карманным персональным компьютером или любым устройством, которое может быть выполнено с возможностью реализации настоящей технологии, как будет понятно специалисту в данной области техники.[0061] Computing device 100 may be a server, desktop computer, laptop, tablet, smartphone, personal digital assistant, or any device that can be configured to implement the present technology, as will be appreciated by one of skill in the art.

[0062] Со ссылкой на Фигуру 2 проиллюстрирована схема системы перевода речи в текст, реализованной в соответствии с неограничивающими вариантами осуществления настоящей технологии. Проиллюстрированы два клиентских устройства 210 и 220. Клиентские устройства 210 и 220 могут быть вычислительными устройствами 100, такими как смартфоны, планшеты или умные колонки. Каждое из клиентских устройств 210 и 220 может управляться разными пользователями.[0062] With reference to Figure 2, a diagram of a speech-to-text translation system implemented in accordance with non-limiting embodiments of the present technology is illustrated. Two client devices 210 and 220 are illustrated. Client devices 210 and 220 may be computing devices 100 such as smartphones, tablets, or smart speakers. Each of the client devices 210 and 220 can be controlled by different users.

[0063] Клиентские устройства 210 и 220 могут хранить различные данные, соответствующие пользователю каждого устройства. Например, клиентские устройства 210 и 220 могут хранить контакты, электронные письма, текстовые сообщения, музыку, историю просмотра веб-страниц, данные календаря, приложения и т.д. Хотя описано, что они хранятся на клиентских устройствах 210 и 220, некоторые или все эти данные могут храниться удаленно от клиентских устройств 210 и 220. Например, список контактов, используемый клиентским устройством 210, может храниться в облачной среде хранения или на удаленном сервере.[0063] Client devices 210 and 220 may store various data corresponding to the user of each device. For example, client devices 210 and 220 may store contacts, emails, text messages, music, web browsing history, calendar data, applications, and so on. While described as being stored on client devices 210 and 220, some or all of this data may be stored remotely from client devices 210 and 220. For example, the contact list used by client device 210 may be stored in a cloud storage environment or on a remote server.

[0064] Данные, хранящиеся на клиентском устройстве 210, могут быть использованы для генерирования локального графа 215. Локальный граф 215 может быть сгенерирован клиентским устройством 210. Локальный граф 215 может быть сохранен на клиентском устройстве 210. Локальный граф 215 может включать в себя словарь слов, имеющихся в данных, хранящихся на клиентском устройстве 210. Локальный граф 215 может включать в себя прогнозную вероятность включения каждого слова в графе в текст.Прогнозная вероятность может быть определена на основе частоты слова в данных, хранящихся на клиентском устройстве 210. Аналогично, локальный граф 225 может быть сгенерирован для клиентского устройства 220 на основе данных, хранящихся на клиентском устройстве 220.[0064] Data stored on client device 210 may be used to generate a local graph 215. Local graph 215 may be generated by client device 210. Local graph 215 may be stored on client device 210. Local graph 215 may include a dictionary of words present in the data stored on the client device 210. The local graph 215 may include a predictive probability that each word in the graph will be included in the text. The predictive probability may be determined based on the frequency of a word in the data stored on the client device 210. 225 may be generated for client device 220 based on data stored on client device 220.

[0065] Локальные графы 215 и 225 могут быть использованы для прогнозирования слов, возникающих в пользовательском высказывании. В дополнение к прогнозированию, локальные графы 215 и 225 могут быть использованы для определения показателя достоверности, соответствующего прогнозу. Поскольку локальные графы 215 и 225 генерируются с использованием данных, хранящихся на клиентских устройствах 210 и 220, каждый из этих локальных графов 215 и 225 является персонализированным для ассоциированного клиентского устройства 210 или 220. Если оба локальных графа 215 и 225 приняли идентичные входные данные, локальные графы 215 и 225 могут выдать разные прогнозы.[0065] Local graphs 215 and 225 can be used to predict words that occur in a user statement. In addition to the prediction, local graphs 215 and 225 can be used to determine a confidence score corresponding to the prediction. Since local graphs 215 and 225 are generated using data stored on client devices 210 and 220, each of these local graphs 215 and 225 is personalized for an associated client device 210 or 220. If both local graphs 215 and 225 received identical input data, local columns 215 and 225 may give different predictions.

[0066] Клиентские устройства 210 и 220 могут поддерживать связь с сервером 230, например, через сетевое соединение. Сервер 230 может предоставлять интерфейс для перевода речи в текст. Сервер 230 может хранить граф 235. Граф 235 может иметь аналогичный или подобный локальным графам 215 и 225 формат. Но в отличие от локальных графов 215 и 225, граф 235 может быть использован для обработки запросов, принимаемых от многочисленных клиентских устройств, например, от сотен тысяч клиентских устройств. Клиентские устройства 210 и 220 могут передавать пользовательские высказывания на сервер 230. Затем сервер 230 может использовать граф 235 для прогнозирования текста, соответствующего пользовательским высказываниям. Граф 235 может выводить показатель достоверности для каждого прогноза.[0066] The client devices 210 and 220 may communicate with the server 230, such as through a network connection. Server 230 may provide an interface for translating speech into text. Server 230 may store graph 235. Graph 235 may have the same or similar format as local graphs 215 and 225. But unlike local graphs 215 and 225, graph 235 can be used to handle requests received from multiple client devices, such as hundreds of thousands of client devices. Client devices 210 and 220 may send user utterances to server 230. Server 230 may then use graph 235 to predict text corresponding to user utterances. Graph 235 may output a confidence score for each prediction.

[0067] Показатели достоверности, выведенные локальными графами 215 и 225, можно сравнить с графом 235. Если локальный граф 215 или 225 имеет более высокий показатель достоверности, может быть использован прогноз, сделанный локальным графом 215 или 225. Если, с другой стороны, граф 235 имеет более высокий показатель достоверности для некоторого прогноза, можно быть использован этот прогноз, выведенный графом 235.[0067] The confidence scores output by local graphs 215 and 225 can be compared with graph 235. If local graph 215 or 225 has a higher confidence score, the prediction made by local graph 215 or 225 can be used. If, on the other hand, graph 235 has a higher confidence score for some prediction, this prediction output by column 235 can be used.

[0068] Прогнозы, генерируемые с использованием как локального графа 215 или 225, так и графа 235, могут быть более точными, чем прогнозы, генерируемые с использованием лишь локального графа 215 или 225, и более точными, чем прогнозы, генерируемые с использованием лишь графа 235. Посредством использования как локального графа 215 или 225, так и графа 235, прогнозы обладают преимуществом того, что они адаптированы для отдельного пользователя благодаря локальному графу 215 или 225, а также получают преимущество от большего универсального набора данных за счет графа 235.[0068] Predictions generated using both local graph 215 or 225 and graph 235 can be more accurate than predictions generated using only local graph 215 or 225 and more accurate than predictions generated using only graph 235. By using both a local graph 215 or 225 and a graph 235, the predictions have the advantage of being tailored to the individual user due to the local graph 215 or 225 and also benefit from a larger generic data set due to the graph 235.

[0069] Со ссылкой на Фигуру 3 проиллюстрирована схема системы для обработки пользовательского высказывания в соответствии с неограничивающими вариантами осуществления настоящей технологии. Пользовательское высказывание 310 может быть записанной речью, такой как устная команда от пользователя клиентского устройства 210. Пользовательское высказывание 310 может быть записано после того, как обнаружено триггерное слово для начала записи. Например, если триггерным словом является «Алиса», может быть записано пользовательское высказывание, произнесенное после слова «Алиса».[0069] With reference to Figure 3, a diagram of a system for processing a user utterance is illustrated in accordance with non-limiting embodiments of the present technology. The user utterance 310 may be recorded speech, such as a spoken command from a user of the client device 210. The user utterance 310 may be recorded after the trigger word to start recording is found. For example, if the trigger word is "Alice", a custom utterance can be recorded after the word "Alice".

[0070] Пользовательское высказывание может быть записано одним или более микрофонами, такими как один или более микрофонов, в клиентском устройстве 210. Пользовательское высказывание может быть записано микрофоном, внешним по отношению к клиентскому устройству 210, таким как микрофон гарнитуры, беспроводным образом взаимодействующей с клиентским устройством 210.[0070] The user utterance may be recorded by one or more microphones, such as one or more microphones, in the client device 210. The user utterance may be recorded by a microphone external to the client device 210, such as the microphone of a headset wirelessly communicating with the client device 210.

[0071] После приема пользовательского высказывания 310 клиентское устройство 210 использует локальный граф 215, чтобы определить локальный прогноз 320 для пользовательского высказывания 310. Показатель 325 достоверности может быть определен для локального прогноза 320. Локальным прогнозом 320 может быть прогнозный (спрогнозированный) текст, соответствующим пользовательскому высказыванию 310. Показатель 325 достоверности может указывать достоверность, ассоциированную с локальным прогнозом 320.[0071] Upon receiving the user utterance 310, the client device 210 uses the local graph 215 to determine a local prediction 320 for the user utterance 310. A confidence score 325 may be determined for the local prediction 320. The local prediction 320 may be a predictive (predicted) text corresponding to the user statement 310. Confidence metric 325 may indicate confidence associated with local prediction 320.

[0072] Клиентское устройство 210 может передавать пользовательское высказывание 310 на сервер 230. Следует отметить, что клиентское устройство 210 может передавать пользовательское высказывание на сервер 230, как только клиентское устройство 210 принимает пользовательское высказывание 310, так что локальная обработка, описанная выше, и серверная обработка, которая будет описана ниже, исполняются по существу параллельно. Другие реализации также являются возможными, как будет описано более подробно ниже. Сервер 230 может использовать граф 235 для определения прогноза 330 для пользовательского высказывания 310. Сервер 230 может использовать граф 235 для определения показателя 335 достоверности для прогноза 330. Аналогично локальному прогнозу 320, прогноз 330 может включать в себя прогнозный текст, соответствующий пользовательскому высказыванию 310. Показатель 335 достоверности может указывать уровень достоверности в прогнозе 330.[0072] The client device 210 may transmit the user utterance 310 to the server 230. It should be noted that the client device 210 may transmit the user utterance to the server 230 as soon as the client device 210 receives the user utterance 310, so that the local processing described above and the server the processing to be described below are executed substantially in parallel. Other implementations are also possible, as will be described in more detail below. Server 230 may use graph 235 to determine prediction 330 for user utterance 310. Server 230 may use graph 235 to determine a confidence score 335 for prediction 330. Similar to local prediction 320, prediction 330 may include predictive text corresponding to user utterance 310. Score 335 confidence may indicate the level of confidence in the prediction 330.

[0073] Средство (механизм) 340 сравнения может принимать и сравнивать показатель 325 достоверности и показатель 335 достоверности. Средство 340 сравнения может принимать прогнозы 320 и 330 и/или показатели 325 и 335 достоверности. Затем средство 340 сравнения может определять выходной (выводимый) прогноз 350. Средство 340 сравнения может быть расположено на клиентском устройстве 210, сервере 230 и/или на другом устройстве. Средство 340 сравнения может выбирать то, какой прогноз 320 или 330 имеет наивысший показатель 325 или 335 достоверности. Выбранный прогноз 320 или 330 может быть выведен в качестве выходного прогноза 350.[0073] Comparison engine 340 can receive and compare confidence score 325 and confidence score 335. Comparator 340 may receive predictions 320 and 330 and/or confidence metrics 325 and 335. Comparator 340 may then determine an output prediction 350. Comparator 340 may be located on client device 210, server 230, and/or another device. Comparator 340 can select which prediction 320 or 330 has the highest confidence score 325 or 335 . The selected prediction 320 or 330 may be output as output prediction 350.

[0074] В некоторых случаях может использоваться пороговое значение, при котором локальный прогноз 320 может быть выбран, даже если показатель 325 достоверности ниже, чем показатель 335 достоверности. В этом случае, если показатель 325 достоверности ниже, чем показатель 335 достоверности, менее чем на предварительно определенную пороговую величину, то локальный прогноз 320 может быть выведен в качестве выходного прогноза 350 средством 340 сравнения.[0074] In some cases, a threshold value may be used at which the local prediction 320 can be selected even if the confidence score 325 is lower than the confidence score 335. In this case, if the confidence score 325 is lower than the confidence score 335 by less than a predetermined threshold, then the local prediction 320 may be output as the output prediction 350 by the comparison engine 340 .

[0075] Пользовательское высказывание 310 может не отправляться на сервер 230 для прогноза с использованием графа 235. Если показатель 325 достоверности удовлетворяет предопределенному пороговому значению, пользовательское высказывание 310 может не отправляться на сервер 230. В этом случае выходным прогнозом 350 будет локальный прогноз 320. Поскольку прогноз 330 в этом случае сгенерирован не будет, средство 340 сравнения может не использоваться.[0075] User utterance 310 may not be sent to server 230 for prediction using graph 235. If confidence score 325 satisfies a predetermined threshold, user utterance 310 may not be sent to server 230. In this case, output prediction 350 will be local prediction 320. Because prediction 330 will not be generated in this case, comparator 340 may not be used.

[0076] Со ссылкой на Фигуру 4 проиллюстрирован граф 400 согласно неограничивающим вариантам осуществления настоящей технологии. Граф 400 включает в себя узлы и ребра, соединяющие эти узлы. Узлы проиллюстрированы как содержащие отдельные буквы. Несмотря на то, что они проиллюстрированы как включающие в себя буквы, в некоторых случаях каждый узел может содержать несколько букв, например, n-граммы (такие как биграммы, триграммы или тому подобное). Графы 215, 225 и 235 могут иметь аналогичный или подобный проиллюстрированному графу 400 формат.[0076] Referring to Figure 4, illustrated is a graph 400 according to non-limiting embodiments of the present technology. Graph 400 includes nodes and edges connecting those nodes. The nodes are illustrated as containing single letters. Although they are illustrated as including letters, in some cases each node may contain multiple letters, such as n-grams (such as bigrams, trigrams, or the like). Boxes 215, 225, and 235 may have the same or similar format as box 400 illustrated.

[0077] Форматом графа 400 является префиксное дерево. В этом дереве каждый узел соединен ровно одним ребром. На первом уровне этого дерева находятся 26 корней, соответствующих буквам «A» - «Z», в качестве примера, если используется английский алфавит. Следует отметить, что это дерево может иметь больше корней, например, 33 корня, если вместо упомянутого алфавита используется русский алфавит.[0077] The format of graph 400 is a prefix tree. In this tree, each node is connected by exactly one edge. At the first level of this tree, there are 26 roots corresponding to the letters "A" - "Z", as an example, if the English alphabet is used. It should be noted that this tree may have more roots, for example, 33 roots, if the Russian alphabet is used instead of the mentioned alphabet.

[0078] Каждый корень затем соединяется с различными другими узлами, которые могут именоваться дочерними узлами, оканчиваясь на конечном узле, который именуется листом. Набор узлов между корнем и листом именуется ветвью. Каждая ветвь образует по меньшей мере одно слово, при этом лист является последней буквой этого слова. Например, крайняя слева ветвь на графе 400 содержит слова ‘age’ и ‘ages’. Ветви могут образовывать имена собственные, например, крайняя справа ветвь на графе 400, которая образует имя ‘Zoe’.[0078] Each root is then connected to various other nodes, which may be referred to as child nodes, ending at a final node, which is referred to as a leaf. The set of nodes between a root and a leaf is called a branch. Each branch forms at least one word, with leaf being the last letter of that word. For example, the leftmost branch on column 400 contains the words 'age' and 'ages'. Branches can form proper names, for example, the rightmost branch on column 400, which forms the name ‘Zoe’.

[0079] В графе 400 могут быть сохранены многочисленные спряжения слова, например, многочисленные спряжения, сгенерированные инфлектором (описанным ниже более подробно). Многочисленные спряжения могут разделять один или более общих узлов, например, общий корень. Каждое слово и/или лист, хранящиеся в графе 400, могут быть ассоциированы с показателем. Показатель может указывать частоту, с которой слово встречается в тексте, используемом для генерирования графа 400. Показатель для каждого слова может быть сохранен в графе 400. Показатель может быть показателем достоверности для прогноза, таким как показатели 325 и 335 достоверности. В некоторых неограничивающих вариантах осуществления настоящей технологии разные спряжения одного и того же слова могут иметь одинаковый показатель достоверности.[0079] Column 400 may store multiple conjugations of a word, such as multiple conjugations generated by an inflector (described in more detail below). Multiple conjugations may share one or more common nodes, such as a common root. Each word and/or sheet stored in column 400 may be associated with a metric. The score may indicate the frequency with which the word occurs in the text used to generate column 400. The score for each word may be stored in column 400. The score may be a confidence score for the prediction, such as confidence scores 325 and 335. In some non-limiting embodiments of the present technology, different conjugations of the same word may have the same confidence score.

[0080] Вместо того, чтобы рассматривать каждое слово в отдельности, может быть полезно изучить взаимосвязь между словами, чтобы повысить точность прогнозирования. Поддерживающие (boost) показатели могут быть определены для слов, которые часто встречаются вместе в тексте, используемом для генерирования графа 400. Поддерживающие показатели могут храниться отдельно от графа 400. Если первое слово распознается в пользовательском высказывании с использованием графа 400, поддерживающие показатели, соответствующие этому первому слову, могут быть использованы для прогнозирования следующего слова в пользовательском высказывании. Например, некоторые поддерживающие показатели могут поддерживать определенное спряжение второго слова, которое следует за первым словом, если это спряжение второго слова зависит от формы первого слова.[0080] Instead of considering each word individually, it may be useful to study the relationship between words in order to improve prediction accuracy. Boost metrics can be defined for words that occur frequently together in the text used to generate graph 400. Boost metrics can be stored separately from column 400. If the first word is recognized in a user utterance using column 400, boost metrics corresponding to that the first word can be used to predict the next word in the user's utterance. For example, some support indicators may support a particular conjugation of the second word that follows the first word if that conjugation of the second word depends on the form of the first word.

[0081] Со ссылкой на Фигуру 5 проиллюстрирована схема системы для генерирования локального графа согласно неограничивающим вариантам осуществления настоящей технологии. Клиентское устройство 210 может хранить различные данные для пользователя клиентского устройства 210. Например, клиентское устройство 210 может хранить контакты 520, музыку 530, сообщения 540 (текстовые, электронные сообщения и т.д.), приложения 550 и/или другие данные. Несмотря на то, что они проиллюстрированы как хранящиеся в клиентском устройстве 210, следует понимать, что все или части контактов 520, музыки 530, сообщений 540 и/или приложений 550 могут быть сохранены вне клиентского устройства 210, например, в облачной среде.[0081] With reference to Figure 5, a diagram of a system for generating a local graph according to non-limiting embodiments of the present technology is illustrated. Client device 210 may store various data for a user of client device 210. For example, client device 210 may store contacts 520, music 530, messages 540 (text, email, etc.), applications 550, and/or other data. Although illustrated as being stored on client device 210, it should be understood that all or parts of contacts 520, music 530, messages 540, and/or applications 550 may be stored outside client device 210, such as in a cloud environment.

[0082] Текст может быть сгенерирован согласно контактам 520, музыке 530, сообщениям 540, приложениям 550 и/или другим данным, хранимым клиентским устройством 210. Например, могут быть извлечены имена всех контактов 520, могут быть извлечены названия и исполнители всей музыки 530, могут быть извлечены названия приложений 550 и т.д. Этот текст может образовывать корпус текста, используемый для генерирования локального графа 215.[0082] Text may be generated according to contacts 520, music 530, messages 540, applications 550, and/or other data stored by client device 210. For example, the names of all contacts 520 may be extracted, the titles and artists of all music 530 may be extracted, application names 550 can be extracted, and so on. This text may form a body of text used to generate the local graph 215.

[0083] После генерирования корпуса текста с использованием данных, хранящихся на клиентском устройстве 210, корпус может быть введен в нормализатор 560. Нормализатор 560 может храниться и/или исполняться на клиентском устройстве 210 и/или на сервере. Если нормализатор 560 исполняется на сервере, корпус текста может быть передан клиентским устройством 210 на сервер. Нормализатор 560 может переводить любые нетекстовые части корпуса текста в текст. Нормализатор 560 может преобразовать цифры, аббревиатуры, сленг и/или локальные выражения в текст. Например, если корпус текста включает в себя цифру «24», нормализатор может преобразовать эту цифру в текст «twenty four». В другом примере, если корпус текста включает в себя «$4,50», нормализатор 560 может преобразовать это в «four dollars, fifty cents». В еще одном примере, если корпус текста включает в себя «12ft», нормализатор 560 может преобразовать это в «twelve feet». Хотя здесь приведены примеры на английском языке, нормализатор 560 может функционировать для других языков, таких как русский. Нормализатор 560 может заменить исходный текст в корпусе текста переведенным текстом и/или сохранить исходный текст в корпусе текста и добавить переведенный текст в корпус текста.[0083] After the text corpus is generated using the data stored on the client device 210, the corpus can be entered into the normalizer 560. The normalizer 560 can be stored and/or executed on the client device 210 and/or on the server. If the normalizer 560 is running on the server, the body of text may be transmitted by the client device 210 to the server. The normalizer 560 may translate any non-text portions of the text corpus into text. Normalizer 560 may convert numbers, abbreviations, slang, and/or local expressions to text. For example, if a text corpus includes the number "24", the normalizer might convert that number to the text "twenty four". In another example, if the text corpus includes "$4.50", the normalizer 560 may convert this to "four dollars, fifty cents". In yet another example, if the body of text includes "12ft", the normalizer 560 may convert this to "twelve feet". Although examples are provided here in English, the normalizer 560 may function for other languages such as Russian. The normalizer 560 may replace the original text in the text corpus with the translated text and/or store the original text in the text corpus and add the translated text to the text corpus.

[0084] После того как корпус текста был обработан нормализатором 560, корпус текста может быть введен в инфлектор 570. Аналогично нормализатору 560, инфлектор 570 может храниться и/или исполняться на клиентском устройстве 210 и/или отдельном устройстве, таком как сервер. Инфлектор 570 может генерировать альтернативные формы текста в корпусе. Инфлектор 570 может генерировать альтернативные спряжения слов, альтернативные написания слов и т.д. Например, если текст «twenty-four» был принят инфлектором 570, инфлектор может вывести «twenty four» и «two four». Вывод инфлектора 570 может быть добавлен в корпус текста.[0084] After the text corpus has been processed by the normalizer 560, the text corpus can be entered into the inflector 570. Similar to the normalizer 560, the inflector 570 can be stored and/or executed on the client device 210 and/or a separate device such as a server. The inflector 570 can generate alternative forms of text in the body. Inflector 570 can generate alternative word conjugations, alternative spellings of words, and so on. For example, if the text "twenty-four" was received by inflector 570, the inflector may output "twenty four" and "two four". The output of the inflector 570 can be added to the body of the text.

[0085] После того как корпус текста был обработан нормализатором 560 и инфлектором 570, локальный граф 215 может быть сгенерирован с использованием корпуса текста. Локальный граф 215 может включать в себя каждое слово в корпусе текста. Локальный граф 215 может указывать частоту появления для каждого слова в корпусе текста. Затем локальный граф 215 может быть использован для прогнозирования текста, соответствующего пользовательскому высказыванию.[0085] After the text corpus has been processed by the normalizer 560 and the inflector 570, the local graph 215 can be generated using the text corpus. The local graph 215 may include each word in the text corpus. Local graph 215 may indicate the frequency of occurrence for each word in the text corpus. The local graph 215 can then be used to predict text corresponding to the user's utterance.

[0086] Следует отметить, что, хотя в вышеприведенных примерах было описано, что локальный граф 215 хранится на клиентском устройстве 210, а граф 235 хранится на сервере 230, эти два графа (локальный граф 215 и граф 235) могут храниться на одном физическом носителе информации, будь то сервер 230 или клиентское устройство 210.[0086] It should be noted that although in the above examples it has been described that the local graph 215 is stored on the client device 210, and the graph 235 is stored on the server 230, these two graphs (local graph 215 and graph 235) can be stored on the same physical medium. information, whether it be a server 230 or a client device 210.

Способ (неограничивающий вариант осуществления)Method (non-limiting embodiment)

[0087] Со ссылкой на Фигуры 6, 7 и 8 проиллюстрирована схема последовательности операций способа 600, причем способ 600 реализуется в соответствии с неограничивающими вариантам осуществления настоящей технологии.[0087] With reference to Figures 6, 7, and 8, a flow diagram of a method 600 is illustrated, with method 600 being implemented in accordance with non-limiting embodiments of the present technology.

Этап 605 - извлечение текста, хранящегося на клиентском устройствеStep 605 - Retrieve text stored on the client device

[0088] Способ 600 начинается с этапа 605. На этапе 605 текст и/или другие данные, хранящиеся на клиентском устройстве, могут быть извлечены. Текст может включать в себя контакты 520, музыку 530, сообщения 540, приложения 550, плейлисты, книги, данные календаря и/или любые другие данные, хранящиеся на клиентском устройстве. Несмотря на то, что описано, что на клиентском устройстве хранится текст, могут быть извлечены другие данные, которые ассоциированы с пользователем клиентского устройства, независимо от того, хранятся ли эти данные на клиентском устройстве, например, пользовательские данные, хранящиеся в облачной среде.[0088] Method 600 begins at 605. At 605, text and/or other data stored on the client device may be retrieved. The text may include contacts 520, music 530, messages 540, applications 550, playlists, books, calendar data, and/or any other data stored on the client device. While it is described that the text is stored on the client device, other data that is associated with the user of the client device can be retrieved, whether or not that data is stored on the client device, such as user data stored in a cloud environment.

[0089] Извлекаемые данные могут исходить от нескольких устройств, например, нескольких устройств, ассоциированных с одним и тем же пользователем. Например, если у пользователя есть и смартфон, и планшет, данные могут быть извлечены как со смартфона, так и с планшета.[0089] The retrieved data may come from multiple devices, such as multiple devices associated with the same user. For example, if the user has both a smartphone and a tablet, data can be retrieved from both the smartphone and the tablet.

Этап 610 - применение текста к нормализаторуStep 610 - Apply Text to Normalizer

[0090] На этапе 610 текст, извлеченный на этапе 605, может быть применен к нормализатору, такому как нормализатор 560. Нормализатор может выводить нормализованный текст, соответствующий тексту, извлеченному на этапе 605. Как описано выше, нормализатор может преобразовывать цифры, аббревиатуры, сленг и/или локальные выражения в текст. Нормализатор может применять к тексту набор правил и/или набор функций. Нормализатор может пройти по всему тексту, извлеченному на этапе 605.[0090] At block 610, the text extracted at block 605 may be applied to a normalizer, such as normalizer 560. The normalizer may output normalized text corresponding to the text extracted at block 605. As described above, the normalizer may transform numbers, abbreviations, slang and/or local expressions to text. The normalizer may apply a set of rules and/or a set of features to the text. The normalizer may traverse all of the text retrieved at block 605.

Этап 615 - применение текста к инфлекторуStep 615 - Apply Text to Inflector

[0091] На этапе 615 текст, извлеченный на этапе 605, и/или нормализованный текст, сгенерированный на этапе 610, могут быть введены в инфлектор, такой как инфлектор 570. Инфлектор может выводить инфлектированный текст.Как описано выше, инфлектор может генерировать альтернативные формы текста, такие как альтернативные спряжения, альтернативные варианты написания и т.д. Инфлектор может генерировать альтернативные формы слов в тексте, принятом на этапе 605, и/или нормализованном тексте, сгенерированном на этапе 610.[0091] At block 615, the text extracted at block 605 and/or the normalized text generated at block 610 may be input to an inflector, such as inflector 570. The inflector may output the inflectored text. As described above, the inflector may generate alternative forms text such as alternative conjugations, alternative spellings, etc. The inflector may generate alternative word forms in the text received at step 605 and/or the normalized text generated at step 610.

[0092] В зависимости от языка текста, этапы 610 и/или 615 могут быть пропущены. Например, нормализатор может не применяться к тексту, хранящемуся на английском языке. Если данные на нескольких языках хранятся на клиентском устройстве, текст, извлекаемый на этапе 605, может быть кластеризован по языкам. Нормализатор и/или инфлектор могут быть применены к подмножеству кластеров, основываясь на языке каждого кластера.[0092] Depending on the language of the text, steps 610 and/or 615 may be skipped. For example, the normalizer may not be applied to text stored in English. If data in multiple languages is stored on the client device, the text retrieved at block 605 may be clustered by language. The normalizer and/or inflector may be applied to a subset of the clusters based on the language of each cluster.

Этап 620 - генерирование локального графаStep 620 - generate local graph

[0093] На этапе 620 локальный граф может быть сгенерирован с использованием текста, извлеченного на этапе 605, нормализованного текста, сгенерированного на этапе 610, и/или инфлектированного текста, сгенерированного на этапе 615. Локальный граф может быть сгенерирован клиентским устройством и/или сервером. После того, как локальный граф сгенерирован, локальный граф может быть сохранен на клиентском устройстве.[0093] At 620, a local graph may be generated using the text extracted at 605, the normalized text generated at 610, and/or the inflected text generated at 615. The local graph may be generated by a client device and/or a server . After the local graph is generated, the local graph can be stored on the client device.

[0094] Локальный граф может включать в себя дерево, имеющее узлы и ребра, соединяющие эти узлы. Каждый узел может соответствовать одной букве. Первый узел в каждой ветви дерева может соответствовать первой букве слова. Последующие узлы в этой ветви могут соответствовать следующим буквам упомянутого слова. Каждая ветвь заканчивается в узле, который именуется листом. Лист может содержать последнюю букву слова, образованного ветвью. Каждый лист может соответствовать слову, при этом слово образуется каждой буквой от корневого узла до листа.[0094] A local graph may include a tree having nodes and edges connecting those nodes. Each node can correspond to one letter. The first node in each branch of the tree may correspond to the first letter of the word. Subsequent nodes in this branch may correspond to the next letters of the mentioned word. Each branch ends at a node called a leaf. The leaf may contain the last letter of the word formed by the branch. Each leaf can correspond to a word, with the word formed by each letter from the root node to the leaf.

[0095] Граф может указывать частоту, с которой каждое слово, представленное в графе, встречается в тексте, извлеченном на этапе 605, нормализованном тексте, сгенерированном на этапе 610, и/или инфлектированном тексте, сгенерированном на этапе 615. Частота может быть в виде процентов. Частота может быть сохранена как весовые коэффициенты ребер на графе.[0095] The graph may indicate the frequency with which each word represented in the graph occurs in the text extracted at block 605, the normalized text generated at block 610, and/or the inflected text generated at block 615. The frequency may be in the form percent. The frequency can be stored as edge weights on the graph.

Этап 625 - прием пользовательского высказыванияStep 625 - Receiving a User Statement

[0096] На этапе 625 пользовательское высказывание может быть принято. Пользовательское высказывание может быть принято клиентским устройством, например, микрофоном клиентского устройства. Пользовательское высказывание может быть словом или несколькими словами. Пользовательское высказывание может быть командой, запросом или любым другим произносимым высказыванием. Как описано выше, триггерное слово может быть произнесено для указания того, что пользовательское высказывание, идущее после триггерного слова, должно быть захвачено.[0096] At block 625, a user statement may be received. The user utterance may be received by the client device, such as the microphone of the client device. A user statement can be a word or multiple words. The user statement can be a command, a query, or any other spoken statement. As described above, the trigger word may be spoken to indicate that the user utterance following the trigger word is to be captured.

[0097] После приема пользовательского высказывания пользовательское высказывание может быть модифицировано для обработки речи в текст.К пользовательскому высказыванию могут быть применены фильтры, например, для снижения фонового шума. Пользовательское высказывание может быть разделено на несколько сегментов, например, чтобы разделить пользовательское высказывание на отдельные слова и/или предложения. Если несколько говорящих лиц обнаружены в записанных аудиоданных, пользовательское высказывание от отдельного говорящего лица может быть изолировано в этих аудиоданных.[0097] After receiving a user utterance, the user utterance may be modified for speech-to-text processing. Filters may be applied to the user utterance, for example, to reduce background noise. The user utterance may be divided into multiple segments, for example, to separate the user utterance into individual words and/or sentences. If multiple speakers are found in the recorded audio data, the user utterance from an individual speaker can be isolated in the audio data.

Этап 630 - использование локального графа для генерирования прогнозного текстаStep 630 - Use Local Graph to Generate Predictive Text

[0098] На этапе 630 локальный граф, сгенерированный на этапе 620, может быть использован для определения прогнозного текста, соответствующего пользовательскому высказыванию, принятому на этапе 625. Прогнозный текст может быть одним словом или несколькими словами. Локальный граф может быть использован для определения первого показателя достоверности, соответствующего прогнозному тексту. Поиск луча может быть выполнен с использованием локального графа для определения прогнозного текста.[0098] At block 630, the local graph generated at block 620 may be used to determine predictive text corresponding to the user utterance received at block 625. The predictive text may be one word or multiple words. The local graph can be used to determine the first confidence score corresponding to the predictive text. The beam search can be performed using a local graph to determine the predictive text.

[0099] Как описано выше, локальный граф может указывать частоту прогнозного слова. Первый показатель достоверности может быть определен на основе частоты прогнозного слова. Например, если прогнозное слово имеет относительно высокую указанную частоту, первый показатель достоверности может быть относительно высоким. Напротив, если прогнозное слово имеет относительно низкую указанную частоту, первый показатель достоверности может быть относительно низким.[0099] As described above, the local graph may indicate the frequency of the prediction word. The first confidence metric may be determined based on the frequency of the prediction word. For example, if the prediction word has a relatively high specified frequency, the first confidence score may be relatively high. In contrast, if the prediction word has a relatively low specified frequency, the first confidence score may be relatively low.

Этапы 635 и 640 - сравнение первого показателя достоверности с пороговым показателемSteps 635 and 640 - Compare First Confidence Score with Threshold Score

[00100] На этапах 635 и 640 первый показатель достоверности может сравниваться с предопределенным пороговым показателем достоверности. Предопределенный пороговый показатель достоверности может быть установлен оператором системы перевода речи в текст. Предопределенный пороговый показатель достоверности может быть относительно высоким показателем. Может быть более эффективным полагаться исключительно на прогнозный текст, полученный посредством локального графа, такой как локальный граф 215, вместо того, чтобы обеспечивать прогноз как локальным графом, так и другим графом, таким как граф 235. Если показатель достоверности для прогноза посредством локального графа является достаточно высоким, можно предположить, что прогноз по другому графу не будет иметь достаточно высокий показатель достоверности для его выбора в качестве прогнозного текста для вывода. Можно также предположить, что если прогноз посредством локального графа имеет достаточно высокий показатель достоверности, тогда этот прогноз посредством локального графа, вероятно, является правильным. В этом случае генерирование другого прогноза посредством другого графа может быть избыточным, отнимающим время и/или может снизить точность системы перевода речи в текст.[00100] At steps 635 and 640, the first confidence score may be compared to a predetermined threshold confidence score. A predetermined confidence threshold may be set by the operator of the speech-to-text translation system. The predetermined confidence threshold may be a relatively high value. It may be more efficient to rely solely on the predictive text obtained by the local graph, such as local graph 215, instead of providing the prediction by both the local graph and another graph, such as graph 235. If the confidence score for the local graph prediction is high enough, it can be assumed that the forecast for another column will not have a high enough confidence score for it to be selected as the predictive text for output. It can also be assumed that if a local graph prediction has a high enough confidence score, then that local graph prediction is probably correct. In this case, generating a different prediction by a different graph may be redundant, time-consuming, and/or may reduce the accuracy of the speech-to-text system.

[00101] Если на этапе 640 сделано определение, что первый показатель достоверности выше порогового показателя достоверности, способ 600 может завершаться на этапе 645. В противном случае, если первый показатель достоверности ниже порогового показателя, способ 600 может перейти на этап 650, на котором прогнозный текст, соответствующий пользовательскому высказыванию, будет определен с использованием другого графа. В некоторых случаях система перевода речи в текст может быть выполнена с возможностью всегда определять второй прогнозный текст, и в этом случае этапы 635 и 640 могут быть пропущены, а способ 600 может переходить непосредственно с этапа 630 на этап 650.[00101] If a determination is made at 640 that the first confidence score is above a confidence threshold, method 600 may terminate at 645. Otherwise, if the first confidence score is below the threshold, method 600 may proceed to step 650 where the predictive the text corresponding to the user's statement will be defined using a different column. In some cases, the speech-to-text translation system may be configured to always determine the second predictive text, in which case steps 635 and 640 may be skipped and method 600 may jump directly from step 630 to step 650.

Этап 645 - вывод первого прогнозного текстаStep 645 - Outputting First Predictive Text

[00102] На этапе 645 первый прогнозный текст может быть выведен. Первый прогнозный текст может быть отображен. Первый прогнозный текст может быть использован в качестве ввода в приложение. Например, первый прогнозный текст может быть выведен с использованием интерфейса прикладного программирования (API). Если первый прогнозный текст соответствует команде, команда может быть выполнена клиентским устройством.[00102] At 645, a first predictive text may be output. The first predictive text may be displayed. The first predictive text can be used as input to the application. For example, the first predictive text may be output using an application programming interface (API). If the first predictive text matches the command, the command may be executed by the client device.

Этап 650 - передача пользовательского высказывания на серверStep 650 - Sending the User Statement to the Server

[00103] На этапе 650 пользовательское высказывание может быть передано на сервер, например на сервер 230. Сервер может быть сервером, осуществляющим связь со многими другими клиентскими устройствами. Сервер может быть группой серверов, например облачным приложением. Сервер может реализовывать систему перевода речи в текст.[00103] At step 650, the user statement may be transmitted to a server, such as server 230. The server may be a server that communicates with many other client devices. The server can be a group of servers, such as a cloud application. The server may implement a speech-to-text translation system.

Этап 655 - генерирование второго прогнозного текстаStep 655 - Generate Second Predictive Text

[00104] На этапе 655 второй прогнозный текст может быть определен сервером с использованием графа, такого как граф 235. Второй показатель достоверности может быть определен согласно второму прогнозу. Граф может быть графом, используемым для генерирования прогнозов для многочисленных клиентских устройств. Граф может быть сгенерирован с использованием общего корпуса текста, а не текста, характерного для клиентского устройства, такого как локальный граф. Граф может иметь подобную локальному графу форму. Как и локальный граф, граф может включать в себя дерево, при этом каждому узлу в этом дереве соответствует некоторая буква. Дерево может указывать частоту, с которой встречается каждое слово в дереве. Поиск луча может быть выполнен с использованием этого графа для определения второго текста. Второй показатель достоверности может быть определен на основе частоты, с которой прогнозное слово встречается в тексте, использованном для генерирования графа.[00104] At 655, a second predictive text may be determined by the server using a graph, such as graph 235. A second confidence metric may be determined according to the second prediction. The graph may be a graph used to generate predictions for multiple client devices. The graph may be generated using a common body of text rather than text specific to the client device such as a local graph. A graph may have a form similar to a local graph. Like a local graph, a graph can include a tree, with each node in this tree corresponding to some letter. The tree can indicate the frequency with which each word in the tree occurs. A beam search can be performed using this graph to determine the second text. The second confidence score can be determined based on the frequency with which the predictive word occurs in the text used to generate the graph.

Этапы 660 и 665 - сравнение первого показателя достоверности с пороговым показателемSteps 660 and 665 - Compare First Confidence Score with Threshold Score

[00105] На этапах 660 и 665 первый показатель достоверности может сравниваться со вторым показателем достоверности. Если на этапе 665 определено, что первый показатель достоверности является более высоким, первый прогнозный текст затем может быть выведен на этапе 645. Если второй показатель достоверности является более высоким, второй прогнозный текст может быть выведен на этапе 670.[00105] At steps 660 and 665, the first confidence score may be compared with the second confidence score. If it is determined at 665 that the first confidence score is higher, the first predictive text may then be output at 645. If the second confidence score is higher, the second predictive text may be output at 670.

[00106] В некоторых случаях первый прогнозный текст все же может быть выведен, даже если более высоким является второй показатель достоверности. Второй показатель достоверности может быть снижен, например, путем вычитания предопределенной величины или применения формулы ко второму показателю достоверности. В качестве альтернативы, может быть использовано предопределенное пороговое значение, при этом первый прогнозный текст может быть выведен, если первый показатель достоверности находится в пределах пороговой разности от второго показателя достоверности. Например, если пороговое значение составляет пять процентов, первый показатель достоверности равен 87 процентам, а второй показатель достоверности равен 89 процентам, первый прогнозный текст будет выводиться несмотря на то, что второй показатель достоверности является более высоким.[00106] In some cases, the first predictive text may still be output even if the second confidence score is higher. The second confidence score can be reduced, for example, by subtracting a predetermined value or applying a formula to the second confidence score. Alternatively, a predetermined threshold may be used, wherein the first predictive text may be output if the first confidence score is within a threshold difference from the second confidence score. For example, if the threshold is five percent, the first confidence score is 87 percent, and the second confidence score is 89 percent, the first predictive text will be output even though the second confidence score is higher.

Этап 670 - вывод второго прогнозного текстаStep 670 - Outputting Second Predictive Text

[00107] На этапе 670 второй прогнозный текст может быть выведен. Затем способ 600 может завершаться. Действия, выполняемые на этапе 670, могут быть аналогичны действиям, описанным выше в отношении этапа 645.[00107] At 670, a second predictive text may be output. Method 600 may then end. The actions performed at block 670 may be similar to those described above with respect to block 645.

[00108] Хотя вышеописанные реализации были описаны и показаны со ссылкой на конкретные этапы, выполняемые в конкретном порядке, следует понимать, что эти этапы могут быть объединены, подразделены или переупорядочены без отклонения от идей настоящей технологии. По меньшей мере некоторые из упомянутых этапов могут быть исполнены параллельно или последовательно. Соответственно, порядок и группировка упомянутых этапов ограничениями настоящей технологии не являются.[00108] While the implementations described above have been described and shown with reference to specific steps performed in a specific order, it should be understood that these steps may be combined, subdivided, or reordered without deviating from the teachings of the present technology. At least some of the steps mentioned may be performed in parallel or sequentially. Accordingly, the order and grouping of said steps is not a limitation of the present technology.

[00109] Следует четко понимать, что не все технические эффекты, упомянутые в данном документе, должны достигаться в каждом варианте осуществления настоящей технологии. Например, варианты осуществления настоящей технологии могут быть реализованы без обеспечения пользователю некоторых из этих технических эффектов, в то время как другие варианты осуществления могут быть реализованы с обеспечением пользователю других технических эффектов или без обеспечения каких-либо технических эффектов.[00109] It should be clearly understood that not all technical effects mentioned in this document must be achieved in every embodiment of the present technology. For example, embodiments of the present technology may be implemented without providing some of these technical effects to the user, while other embodiments may be implemented with other technical effects provided to the user or without providing any technical effects.

[00110] Некоторые из вышеупомянутых этапов, а также прием/отправка сигналов хорошо известны в данной области техники и, как таковые, были опущены в некоторых частях этого описания для его упрощения. Сигналы могут отправляться/приниматься с использованием оптических средств (например, оптоволоконного соединения), электронных средств (например, используя проводное или беспроводное соединение), а также механических средств (например, средств, основанных на давлении, на температуре, или на основе любого другого подходящего физического параметра).[00110] Some of the above steps, as well as receiving/sending signals, are well known in the art and, as such, have been omitted from parts of this description for simplicity. Signals can be sent/received using optical means (for example, a fiber optic connection), electronic means (for example, using a wired or wireless connection), as well as mechanical means (for example, pressure-based, temperature-based, or any other suitable physical parameter).

[00111] Модификации и улучшения вышеописанных реализаций настоящей технологии могут стать очевидными для специалистов в данной области техники. Предшествующее описание предназначено для использования в качестве примеров, а не для ограничения. Поэтому подразумевается, что объем настоящей технологии ограничен лишь объемом прилагаемой формулы изобретения.[00111] Modifications and improvements to the above-described implementations of the present technology may become apparent to those skilled in the art. The foregoing description is intended to be illustrative and not limiting. Therefore, the scope of the present technology is intended to be limited only by the scope of the appended claims.

Claims (37)

1. Способ перевода речи в текст, причем речь принята клиентским устройством, причем способ является исполняемым на клиентском устройстве и содержит:1. A method for translating speech into text, wherein the speech is received by a client device, the method being executable on the client device and comprising: прием пользовательского высказывания, соответствующего речи;receiving a user statement corresponding to the speech; определение на основе локального графа, сохраненного клиентским устройством, первого прогнозного текста, соответствующего пользовательскому высказыванию, и первого показателя достоверности, соответствующего первому прогнозному тексту, при этом локальный граф содержит дерево, при этом каждый лист этого дерева соответствует слову и при этом локальный граф генерируется на основе текста, сохраненного клиентским устройством; determining, based on the local graph stored by the client device, the first predictive text corresponding to the user statement and the first confidence indicator corresponding to the first predictive text, wherein the local graph contains a tree, each leaf of this tree corresponds to a word, and the local graph is generated on based on text stored by the client device; передачу на сервер пользовательского высказывания;transferring a user statement to the server; прием от сервера второго прогнозного текста, соответствующего пользовательскому высказыванию, и второго показателя достоверности, соответствующего второму прогнозному тексту;receiving from the server a second predictive text corresponding to the user statement and a second confidence indicator corresponding to the second predictive text; сравнение первого показателя достоверности со вторым показателем достоверности; иcomparing the first confidence score with the second confidence score; and после определения того, что первый показатель достоверности больше, чем второй показатель достоверности, вывод первого прогнозного текста.after determining that the first confidence score is greater than the second confidence score, outputting the first predictive text. 2. Способ по п. 1, в котором первый узел в каждой ветви дерева содержит первую букву слова.2. The method of claim 1, wherein the first node in each branch of the tree contains the first letter of the word. 3. Способ по п. 2, в котором каждый последующий узел после первого узла содержит следующую букву слова.3. The method of claim 2, wherein each subsequent node after the first node contains the next letter of the word. 4. Способ по п. 1, в котором первый лист в дереве содержит первое спряжение слова, при этом второй лист в дереве содержит второе спряжение упомянутого слова, причем первый лист и второй лист имеют общий родительский узел в дереве.4. The method of claim 1, wherein the first leaf in the tree contains the first conjugation of the word, the second leaf in the tree contains the second conjugation of said word, and the first leaf and the second leaf have a common parent node in the tree. 5. Способ по п. 1, в котором каждый лист дерева ассоциирован с показателем достоверности, при этом показатель достоверности указывает частоту, с которой слово, соответствующее соответствующему листу, встречается в тексте, сохраненном клиентским устройством.5. The method of claim 1, wherein each leaf of the tree is associated with a confidence score, wherein the confidence score indicates the frequency with which the word corresponding to the corresponding leaf occurs in text stored by the client device. 6. Способ по п. 5, в котором определение первого прогнозного текста содержит определение листа дерева, который соответствует пользовательскому высказыванию, при этом первый показатель достоверности содержит показатель достоверности, соответствующий этому листу.6. The method of claim 5, wherein determining the first predictive text comprises defining a leaf of the tree that corresponds to the user statement, wherein the first confidence score contains a confidence score corresponding to that leaf. 7. Способ по п. 1, в котором локальный граф генерируют посредством:7. The method of claim 1, wherein the local graph is generated by: применения текста, сохраненного клиентским устройством, к нормализатору, тем самым генерируя нормализованный текст;applying the text stored by the client device to the normalizer, thereby generating the normalized text; применения текста, сохраненного клиентским устройством, и нормализованного текста к инфлектору, тем самым генерируя инфлектированный текст; иapplying the text stored by the client device and the normalized text to the inflector, thereby generating the inflectored text; and генерирования локального графа на основе текста, сохраненного клиентским устройством, нормализованного текста и инфлектированного текста.generating a local graph based on the text stored by the client device, the normalized text, and the inflected text. 8. Способ по п. 7, в котором нормализатор преобразует цифры в тексте, сохраненном клиентским устройством, в текст.8. The method of claim 7, wherein the normalizer converts the digits in the text stored by the client device into text. 9. Способ по п. 7, в котором инфлектор принимает слово и генерирует множество форм этого слова.9. The method of claim 7, wherein the inflector receives a word and generates a plurality of forms of that word. 10. Способ по п. 1, в котором текст, сохраненный клиентским устройством, содержит список контактов.10. The method of claim 1, wherein the text stored by the client device contains a list of contacts. 11. Способ по п. 1, в котором текст, сохраненный клиентским устройством, соответствует музыке, сохраненной клиентским устройством.11. The method of claim 1, wherein the text stored by the client device matches the music stored by the client device. 12. Способ по п. 1, в котором локальный граф персонализирован для пользователя клиентского устройства.12. The method of claim 1, wherein the local graph is personalized for the user of the client device. 13. Способ по п. 1, в котором локальный граф представляет собой дерево n-грамм, при этом каждый узел в локальном графе соответствует отдельной n-грамме.13. The method of claim 1, wherein the local graph is a tree of n-grams, with each node in the local graph corresponding to a separate n-gram. 14. Способ перевода речи в текст, причем речь принята клиентским устройством, причем способ является исполняемым на сервере и содержит:14. The method of translating speech into text, and the speech is received by the client device, and the method is executable on the server and contains: прием от клиентского устройства пользовательского высказывания, соответствующего речи;receiving from the client device a user utterance corresponding to the speech; определение на основе графа первого прогнозного текста, соответствующего пользовательскому высказыванию, и первого показателя достоверности, соответствующего первому прогнозному тексту, при этом граф содержит дерево, при этом каждый лист этого дерева соответствует слову;determining, based on the graph, a first predictive text corresponding to the user statement and a first confidence score corresponding to the first predictive text, the graph comprising a tree, each leaf of the tree corresponding to a word; прием от клиентского устройства второго прогнозного текста, соответствующего пользовательскому высказыванию, и второго показателя достоверности, соответствующего второму прогнозному тексту, при этом второй прогнозный текст был определен клиентским устройством, при этом второй прогнозный текст был определен на основе локального графа, хранимого клиентским устройством, при этом локальный граф был сгенерирован на основе текста, хранимого клиентским устройством;receiving from the client device a second prediction text corresponding to the user utterance and a second confidence indicator corresponding to the second prediction text, wherein the second prediction text was determined by the client device, wherein the second prediction text was determined based on a local graph stored by the client device, wherein the local graph was generated based on the text stored by the client device; сравнение первого показателя достоверности со вторым показателем достоверности иcomparing the first confidence score with the second confidence score, and после определения того, что первый показатель достоверности больше, чем второй показатель достоверности, передачу первого прогнозного текста на клиентское устройство.after determining that the first confidence score is greater than the second confidence score, transmitting the first predictive text to the client device. 15. Способ по п. 14, в котором первый лист в дереве содержит первое спряжение слова, при этом второй лист в дереве содержит второе спряжение упомянутого слова, причем первый лист и второй лист имеют общий родительский узел в дереве.15. The method of claim 14, wherein the first leaf in the tree contains the first conjugation of the word, wherein the second leaf in the tree contains the second conjugation of said word, wherein the first leaf and the second leaf have a common parent node in the tree. 16. Способ по п. 14, в котором каждый лист дерева ассоциирован с показателем достоверности, при этом показатель достоверности указывает частоту, с которой слово, соответствующее соответствующему листу, встречается в тексте, хранимом клиентским устройством.16. The method of claim 14, wherein each leaf of the tree is associated with a confidence score, wherein the confidence score indicates the frequency with which the word corresponding to the corresponding leaf occurs in text stored by the client device. 17. Способ перевода речи в текст, причем речь принята клиентским устройством, причем способ является исполняемым на клиентском устройстве и содержит:17. A method for translating speech into text, wherein the speech is received by a client device, the method being executable on the client device and comprising: прием пользовательского высказывания, соответствующего речи;receiving a user statement corresponding to the speech; определение на основе локального графа, хранимого клиентским устройством, прогнозного текста, соответствующего пользовательскому высказыванию, и показателя достоверности, соответствующего прогнозному тексту, при этом локальный граф содержит дерево, при этом каждый лист этого дерева соответствует слову и при этом локальный граф генерируется на основе текста, хранимого клиентским устройством;determining, based on the local graph stored by the client device, the predictive text corresponding to the user statement, and the reliability indicator corresponding to the predictive text, while the local graph contains a tree, with each leaf of this tree corresponding to a word, and the local graph is generated based on the text, stored by the client device; сравнение показателя достоверности с пороговым показателем достоверности;comparing a confidence score with a threshold confidence score; определение на основе порогового показателя достоверности, следует ли передавать пользовательское высказывание на сервер;determining, based on the confidence threshold, whether the user statement should be transmitted to the server; после определения того, что показатель достоверности удовлетворяет пороговому показателю достоверности, определение, что пользовательское высказывание не следует передавать на сервер; иafter determining that the confidence score satisfies the threshold confidence score, determining that the user statement should not be transmitted to the server; and вывод прогнозного текста.output of predictive text.
RU2019145083A 2019-12-30 2019-12-30 Method and system for speech conversion into text RU2778380C2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
RU2019145083A RU2778380C2 (en) 2019-12-30 Method and system for speech conversion into text
US17/035,207 US11289095B2 (en) 2019-12-30 2020-09-28 Method of and system for translating speech to text

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2019145083A RU2778380C2 (en) 2019-12-30 Method and system for speech conversion into text

Publications (3)

Publication Number Publication Date
RU2019145083A RU2019145083A (en) 2021-06-30
RU2019145083A3 RU2019145083A3 (en) 2021-11-03
RU2778380C2 true RU2778380C2 (en) 2022-08-18

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136210A1 (en) * 2012-11-14 2014-05-15 At&T Intellectual Property I, L.P. System and method for robust personalization of speech recognition
US20150081294A1 (en) * 2013-09-19 2015-03-19 Maluuba Inc. Speech recognition for user specific language
US9147395B2 (en) * 2012-06-28 2015-09-29 Lg Electronics Inc. Mobile terminal and method for recognizing voice thereof
RU2597498C1 (en) * 2015-03-31 2016-09-10 Федеральное государственное бюджетное учреждение науки Санкт-Петербургский институт информатики и автоматизации Российской академии наук Speech recognition method based on two-level morphophonemic prefix graph
RU2646350C2 (en) * 2015-01-27 2018-03-02 Общество С Ограниченной Ответственностью "Яндекс" Method of entering data to electronic device, method of processing voice request, machine-readable media (options), electronic device, server and system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9147395B2 (en) * 2012-06-28 2015-09-29 Lg Electronics Inc. Mobile terminal and method for recognizing voice thereof
US20140136210A1 (en) * 2012-11-14 2014-05-15 At&T Intellectual Property I, L.P. System and method for robust personalization of speech recognition
US20150081294A1 (en) * 2013-09-19 2015-03-19 Maluuba Inc. Speech recognition for user specific language
RU2646350C2 (en) * 2015-01-27 2018-03-02 Общество С Ограниченной Ответственностью "Яндекс" Method of entering data to electronic device, method of processing voice request, machine-readable media (options), electronic device, server and system
RU2597498C1 (en) * 2015-03-31 2016-09-10 Федеральное государственное бюджетное учреждение науки Санкт-Петербургский институт информатики и автоматизации Российской академии наук Speech recognition method based on two-level morphophonemic prefix graph

Similar Documents

Publication Publication Date Title
US10176804B2 (en) Analyzing textual data
US10957312B2 (en) Scalable dynamic class language modeling
US10162813B2 (en) Dialogue evaluation via multiple hypothesis ranking
US20190163691A1 (en) Intent Based Dynamic Generation of Personalized Content from Dynamic Sources
US9805718B2 (en) Clarifying natural language input using targeted questions
US10896222B1 (en) Subject-specific data set for named entity resolution
US20120179694A1 (en) Method and system for enhancing a search request
US10997223B1 (en) Subject-specific data set for named entity resolution
EP3736807A1 (en) Apparatus for media entity pronunciation using deep learning
US10565982B2 (en) Training data optimization in a service computing system for voice enablement of applications
WO2018057427A1 (en) Syntactic re-ranking of potential transcriptions during automatic speech recognition
US10553203B2 (en) Training data optimization for voice enablement of applications
US11328712B2 (en) Domain specific correction of output from automatic speech recognition
US20150178274A1 (en) Speech translation apparatus and speech translation method
CN112346696A (en) Speech comparison of virtual assistants
US11289095B2 (en) Method of and system for translating speech to text
RU2778380C2 (en) Method and system for speech conversion into text
JP6486789B2 (en) Speech recognition apparatus, speech recognition method, and program
JP2022515048A (en) Transliteration for speech recognition training and scoring
Tumpalan et al. English-Filipino Speech Topic Tagger Using Automatic Speech Recognition Modeling and Topic Modeling
US11955120B1 (en) Systems and methods for integrating voice controls into applications
JP7258627B2 (en) Scoring support device, its method, and program
US11397862B2 (en) Configuring metrics and recall levels for natural language processing annotator
US11900072B1 (en) Quick lookup for speech translation
Marin Effective use of cross-domain parsing in automatic speech recognition and error detection