RU2808582C2 - Method and system for recognizing user's speech fragment - Google Patents

Method and system for recognizing user's speech fragment Download PDF

Info

Publication number
RU2808582C2
RU2808582C2 RU2021138538A RU2021138538A RU2808582C2 RU 2808582 C2 RU2808582 C2 RU 2808582C2 RU 2021138538 A RU2021138538 A RU 2021138538A RU 2021138538 A RU2021138538 A RU 2021138538A RU 2808582 C2 RU2808582 C2 RU 2808582C2
Authority
RU
Russia
Prior art keywords
user
server
computer
generated
speech
Prior art date
Application number
RU2021138538A
Other languages
Russian (ru)
Other versions
RU2021138538A (en
Inventor
Василий Алексеевич Ершов
Игорь Евгеньевич Кураленок
Original Assignee
Общество С Ограниченной Ответственностью "Яндекс"
Filing date
Publication date
Application filed by Общество С Ограниченной Ответственностью "Яндекс" filed Critical Общество С Ограниченной Ответственностью "Яндекс"
Priority to US18/081,634 priority Critical patent/US20230206910A1/en
Publication of RU2021138538A publication Critical patent/RU2021138538A/en
Application granted granted Critical
Publication of RU2808582C2 publication Critical patent/RU2808582C2/en

Links

Abstract

FIELD: natural speech processing.
SUBSTANCE: method includes: receiving an audio signal that is an audio representation of a user's speech fragment, which is a response to a computer-generated speech fragment previously issued by an electronic device to the user; obtaining a computer-generated text string that is a text representation of the computer-generated speech fragment; and generating, using a speech-to-text (STT) model, another text string being a textual representation of the user's speech fragment based on the audio signal and a computer-generated text string taken into account as the context of the user's speech fragment.
EFFECT: improves the quality of speech recognition and overall satisfaction of users using virtual assistant applications.
20 cl, 8 dwg

Description

Область техники, к которой относится изобретениеField of technology to which the invention relates

[01] Настоящая технология в целом относится к обработке естественной речи и, в частности, к способам и системам для распознавания устной человеческой речи.[01] This technology generally relates to natural speech processing and, in particular, to methods and systems for recognizing spoken human speech.

Уровень техникиState of the art

[02] Системы преобразования речи в текст (STT, Speech-To-Text) позволяют обрабатывать устную человеческую речь с целью определения в ней отдельных слов и преобразования таким образом фрагментов человеческой речи в текст. Например, такие системы могут использоваться в сочетании с так называемыми приложениями виртуального помощника и обеспечивать улучшенное взаимодействие между пользователем и некоторыми онлайн-сервисами (например, платформами интернет-покупок, системами интернет-бронирования и т.п.) и/или его электронным устройством. Это особенно важно для начинающих пользователей и/или для пользователей с ограниченными возможностями, которые в определенный момент времени не могут использовать интерфейсы пользователь-машина таких онлайн-сервисов и/или электронного устройства для эффективного взаимодействия с ними. Например, пользователь, управляющий транспортным средством или пользователь с нарушениями зрения может не иметь возможности использовать клавиатуру на сенсорном экране, связанную с его электронным устройством, для навигации на веб-сайте врача, чтобы записаться на прием, или на веб-сайте платформы интернет-покупок с целью формирования заказа. В то же время персонал службы работы с клиентами этих онлайн-сервисов может быть не состоянии быстро помочь таким пользователям, например, из-за большого количества запросов от других пользователей.[02] Speech-to-text conversion systems (STT, Speech-To-Text) allow you to process spoken human speech in order to identify individual words in it and thus convert fragments of human speech into text. For example, such systems can be used in combination with so-called virtual assistant applications and provide improved interaction between the user and certain online services (for example, online shopping platforms, online booking systems, etc.) and/or his electronic device. This is especially important for novice users and/or for users with disabilities who at some point in time are unable to use the user-machine interfaces of such online services and/or electronic device to effectively interact with them. For example, a driver or visually impaired user may not be able to use the touch screen keyboard associated with their electronic device to navigate a doctor's website to make an appointment or an online shopping platform website. in order to form an order. However, the customer service staff of these online services may not be able to quickly assist such users, for example, due to a high volume of requests from other users.

[03] Таким образом, для навигации пользователя на соответствующем онлайн-сервисе и для формирования запросов может использоваться приложение виртуального помощника с поддержкой функции виртуального собеседника (также известное как чатбот). В частности, приложение виртуального помощника может инициировать диалог с пользователем в текстовом или звуковом формате, получать запрос в виде речевого фрагмента пользователя и использовать распознанный системой STT полученный речевой фрагмент для формирования дополнительных уточняющих вопросов. Можно сказать, что таким образом приложение виртуального помощника имитирует человека, помогающего пользователю, поддерживая диалог с ним.[03] Thus, a virtual assistant application with support for the virtual interlocutor function (also known as a chatbot) can be used to navigate the user to the relevant online service and generate requests. In particular, a virtual assistant application can initiate a dialogue with the user in text or audio format, receive a request in the form of a speech fragment from the user, and use the received speech fragment recognized by the STT system to generate additional clarifying questions. We can say that in this way the virtual assistant application imitates a person helping the user by maintaining a dialogue with him.

[04] Например, когда приложение виртуального помощника используется для планирования приема пациентов врачом, оно может быть активировано пользователем, обращающимся к врачу, например, по телефону, или начинающим диалог на его веб-сайте, и может приветствовать пользователя и определять его потребности с помощью фразы «Hello, you have reached the office of Doctor House. How can I be of service to you today?» («Здравствуйте, вы обратились в офис врача Хауса. Чем я могу быть Вам полезен сегодня?»). В ответ пользователь может произнести следующую фразу: «I’d like to make an appointment with the doctor» («Я хотел бы записаться на прием к врачу»). Кроме того, приложение виртуального помощника может получать звуковое представление этого запроса пользователя, формировать с использованием системы STT его текстовое представление для дальнейшей обработки и предоставления следующего уточняющего вопроса, такого как запрос информации профиля конкретного пользователя, доступности пользователя, срочности встречи и т.п., соответствующий ответ на который приложение виртуального помощника способно таким же образом обрабатывать с использованием системы STT. Наконец, на основе распознанных таким образом речевых ответов пользователя и, например, доступности врача, приложение виртуального помощника может выполнять запрос пользователя путем назначения для него приема и сохранения данных, указывающих на него, в расписании врача, что может подтверждаться приложением виртуального помощника, формирующим другой ответ, указывающий на следующую фразу: «Your appointment with Doctor House has been scheduled for December 20, 2021 at 11 AM» («Ваша встреча с врачом Хаусом назначена на 20 декабря 2021 года в 11:00».[04] For example, when a virtual assistant application is used to schedule patient appointments with a doctor, it can be activated by a user contacting the doctor, such as by telephone, or starting a conversation on his website, and can greet the user and determine his needs with phrases “Hello, you have reached the office of Doctor House. How can I be of service to you today?” (“Hello, you have reached out to Doctor House’s office. How can I help you today?”) . In response, the user can say the following phrase: “I'd like to make an appointment with the doctor.” In addition, the virtual assistant application can receive an audio representation of this user request, generate a text representation using the STT system for further processing and provide the next follow-up question, such as requesting specific user profile information, user availability, meeting urgency, etc. the corresponding response to which the virtual assistant application is capable of processing in the same way using the STT system. Finally, based on the user's speech responses thus recognized and, for example, the doctor's availability, the virtual assistant application can fulfill the user's request by scheduling an appointment for him and storing data indicating him in the doctor's schedule, which can be confirmed by the virtual assistant application generating another a response indicating the following phrase: “Your appointment with Doctor House has been scheduled for December 20, 2021 at 11 AM.”

[05] Тем не менее, один из недостатков таких приложений может заключаться в неспособности используемой с ними системы STT определять контекст для слов из полученных звуковых представлений речевых фрагментов пользователя. В частности, без выявления контекста фразы система STT может оказаться неспособной надлежащим образом определять семантические связи между словами и поэтому может формировать их неправильные текстовые представления. В описанном выше примере планирования приема система STT может быть заранее настроена на ожидание полной формы обращения «the Doctor House» («врач Хаус»), и поэтому может быть неспособной понять слово «the doctor» («врач») в ответе пользователя, что может привести к дополнительным ненужным вопросам к пользователю. В другом примере, получив звуковое представление имени и фамилии пользователя «Neville Longbottom» («Невиль Лонгботтом»), система STT может формировать текстовое представление «Neville long bottom» («длинное дно Невиля»), не соответствующее данным профиля пользователя. Это может привести к тому, что приложение виртуального помощника с худшим качеством будет поддерживать диалоги с пользователем во время реализации его запроса и, таким образом, негативно влиять на впечатление пользователя от взаимодействия с приложением виртуального помощника.[05] However, one disadvantage of such applications may be the inability of the STT system used with them to determine the context for words from the resulting audio representations of the user's speech fragments. In particular, without identifying the context of a phrase, the STT system may be unable to properly identify semantic relationships between words and may therefore form incorrect textual representations of them. In the appointment scheduling example described above, the STT system may be pre-configured to expect the full form of "the Doctor House" and may therefore be unable to understand the word "the doctor" in the user's response, which may lead to additional unnecessary questions for the user. In another example, upon receiving an audio representation of the user's first and last name "Neville Longbottom", the STT system may produce a text representation of "Neville long bottom" that does not correspond to the user's profile data. This may result in a lower-quality virtual assistant application maintaining conversations with the user during the user's request, thereby negatively impacting the user's experience with the virtual assistant application.

[06] Для решения описанной выше технической проблемы были предложены некоторые известные подходы.[06] To solve the technical problem described above, some known approaches have been proposed.

[07] В патентной заявке US20190005138A1 «Obtaining responsive information from multiple corpora» (Google LLC, опубликована 3 января 2019 г.) описаны способы для автоматизированных помощников, выполняющих поиск информации в различных альтернативных корпусах.[07] Patent application US20190005138A1 “Obtaining responsive information from multiple corpora” (Google LLC, published January 3, 2019) describes methods for automated assistants to search information in various alternative corpora.

[08] В патентной заявке US20210166678A1 «Electronic device and controlling the electronic device» (Samsung Electronics Co Ltd, опубликована 3 июня 2021 г.) описано электронное устройство, содержащее процессор, способный определять, требуется ли передавать серверу, хранящему первую диалоговую систему, речь пользователя, вводимую через микрофон, при этом на основе определения того, что речь пользователя передается серверу, осуществляется управление коммуникатором для передачи серверу речи пользователя и по меньшей мере части сохраненной информации истории диалогов.[08] Patent application US20210166678A1 "Electronic device and controlling the electronic device" (Samsung Electronics Co Ltd, published June 3, 2021) describes an electronic device containing a processor capable of determining whether speech needs to be transmitted to a server storing a first dialogue system. user input via the microphone, wherein, based on determining that the user's speech is transmitted to the server, the communicator is controlled to transmit the user's speech and at least a portion of the stored conversation history information to the server.

[09] В патентной заявке US2020382448A1 «Contextual feedback to a natural understanding system in a chat bot» (Microsoft Technology Licensing LLC, опубликована 21 июля 2020 г.) описана вычислительная система чатбота, содержащая контроллер программы-робота и процессор естественной речи.[09] Patent application US2020382448A1 “Contextual feedback to a natural understanding system in a chat bot” (Microsoft Technology Licensing LLC, published July 21, 2020) describes a chatbot computing system containing a robot program controller and a natural speech processor.

Раскрытие изобретенияDisclosure of the Invention

[010] Целью настоящего изобретения является устранение по меньшей мере некоторых недостатков известных решений.[010] The purpose of the present invention is to eliminate at least some of the disadvantages of known solutions.

[011] Разработчики настоящей технологии установили, что качество распознавания речи, обеспечиваемое системой STT, может быть повышено, если система STT способна учитывать последнюю сформированную для пользователя фразу приложения виртуального помощника в качестве контекста для ответа. В частности, разработчики реализовали систему STT на основе способов машинного обучения (таких как нейронные сети), предусматривающих обучение распознаванию речевых фрагментов пользователя на основе не только соответствующих текстовых представлений, но и фраз, в ответ на которые пользователь предоставляет эти речевые фрагменты.[011] The developers of the present technology have determined that the quality of speech recognition provided by an STT system can be improved if the STT system is able to take into account the last phrase generated for the user by the virtual assistant application as context for the response. In particular, the developers implemented the STT system based on machine learning techniques (such as neural networks), which involve learning to recognize the user's speech fragments based not only on the corresponding text representations, but also on the phrases in response to which the user provides these speech fragments.

[012] Обученная таким образом система STT может преобразовывать каждое слово из речевого фрагмента в текст в рамках конкретного связанного с ним контекста, в результате чего предполагается повышение качества распознавания речи и общей удовлетворенности пользователей, использующих приложения виртуального помощника.[012] An STT system trained in this manner can convert each word from a speech fragment into text within its specific associated context, which is expected to improve speech recognition performance and overall satisfaction for users using virtual assistant applications.

[013] Согласно первому аспекту настоящей технологии реализован способ формирования текстовых представлений речевого фрагмента пользователя. Речевой фрагмент пользователя получается электронным устройством, связанным с пользователем. Речевой фрагмент пользователя предоставляется в ответ на формируемые компьютером речевые фрагменты, выданные электронным устройством. Электронное устройство способно связываться с сервером. Сервер предназначен для формирования формируемых компьютером речевых фрагментов. Способ выполняется сервером. Способ включает в себя: получение сервером от электронного устройства аудиосигнала, являющегося звуковым представлением речевого фрагмента пользователя, представляющего собой ответ на формируемый компьютером речевой фрагмент, ранее выданный электронным устройством пользователю; получение сервером формируемой компьютером текстовой строки, являющейся текстовым представлением формируемого компьютером речевого фрагмента; и формирование сервером с использованием модели STT другой текстовой строки, являющейся текстовым представлением речевого фрагмента пользователя, на основе аудиосигнала и формируемой компьютером текстовой строки, учитываемой в качестве контекста речевого фрагмента пользователя.[013] According to the first aspect of the present technology, a method for generating textual representations of a user's speech fragment is implemented. The user's speech fragment is received by an electronic device associated with the user. The user's speech fragment is provided in response to computer-generated speech fragments output by the electronic device. The electronic device is capable of communicating with the server. The server is designed to generate computer-generated speech fragments. The method is performed by the server. The method includes: receiving by the server from an electronic device an audio signal that is an audio representation of a user's speech fragment, which is a response to a computer-generated speech fragment previously issued by the electronic device to the user; receiving by the server a computer-generated text string that is a text representation of the computer-generated speech fragment; and generating by the server, using the STT model, another text string, which is a text representation of the user's speech fragment, based on the audio signal and a computer-generated text string, taken into account as the context of the user's speech fragment.

[014] В некоторых вариантах осуществления способа он дополнительно включает в себя: формирование сервером с использованием модели STT первой текстовой строки, являющейся текстовым представлением первого речевого фрагмента пользователя, на основе первого аудиосигнала, являющегося звуковым представлением первого речевого фрагмента пользователя; формирование сервером с использованием другой модели формируемой компьютером текстовой строки на основе первой текстовой строки; формирование сервером с использованием модели преобразования текста в речь (TTS, Text-To-Speech) формируемого компьютером аудиосигнала, являющегося звуковым представлением формируемого компьютером речевого фрагмента, на основе формируемой компьютером текстовой строки.[014] In some embodiments of the method, it further includes: the server, using the STT model, generating a first text string being a text representation of the user's first speech fragment based on the first audio signal being an audio representation of the user's first speech fragment; generating by the server, using a different model, a computer-generated text string based on the first text string; generation by the server, using a text-to-speech (TTS, Text-To-Speech) model, of a computer-generated audio signal, which is an audio representation of a computer-generated speech fragment, based on a computer-generated text string.

[015] В некоторых вариантах осуществления способа модель STT представляет собой нейронную сеть (NN, Neural Network) с архитектурой кодер-декодер, содержащую стек слоев кодера и стек слоев декодера, а формирование другой текстовой строки включает в себя: формирование сервером звукового вектора, представляющего аудиосигнал, с использованием алгоритма векторизации звука; ввод сервером звукового вектора в стек кодера сети NN; формирование сервером с использованием алгоритма векторизации текста текстового вектора, представляющего формируемую компьютером текстовую строку; и ввод сервером текстового вектора в стек декодера сети NN.[015] In some embodiments of the method, the STT model is a neural network (NN, Neural Network) with an encoder-decoder architecture containing a stack of encoder layers and a stack of decoder layers, and generating another text string includes: generating by the server an audio vector representing audio signal using an audio vectorization algorithm; input by the server of the audio vector into the NN network encoder stack; generating by the server, using a text vectorization algorithm, a text vector representing a computer-generated text string; and the server inputting the text vector into the NN network decoder stack.

[016] В некоторых вариантах осуществления способа сеть NN представляет собой сеть NN на основе трансформера.[016] In some embodiments of the method, the NN is a transformer-based NN.

[017] В некоторых вариантах осуществления способа он дополнительно включает в себя обучение модели STT на этапе обучения на основе обучающего набора данных, содержащего множество обучающих объектов, при этом обучающий объект содержит: (а) указание на обучающий аудиосигнал, сформированный на основе обучающего речевого фрагмента пользователя, произнесенного обучающим пользователем; (б) первую обучающую текстовую строку, являющуюся текстовым представлением обучающего речевого фрагмента пользователя; и (в) вторую обучающую текстовую строку, используемую для предоставления контекста для первой текстовой строки и являющуюся текстовым представлением соответствующего формируемого компьютером речевого фрагмента, в ответ на который обучающий пользователь произнес обучающий речевой фрагмент пользователя.[017] In some embodiments of the method, it further includes training an STT model in a training phase based on a training data set containing a plurality of training objects, wherein the training object comprises: (a) an indication of a training audio signal generated from the training speech fragment user spoken by the training user; (b) a first training text string, which is a text representation of the user's training speech fragment; and (c) a second training text string used to provide context for the first text string and being a textual representation of the corresponding computer-generated speech fragment in response to which the training user uttered the user's training speech fragment.

[018] В некоторых вариантах осуществления способа он дополнительно включает в себя получение сервером первого аудиосигнала от электронного устройства.[018] In some embodiments of the method, it further includes the server receiving a first audio signal from the electronic device.

[019] В некоторых вариантах осуществления способа он дополнительно включает в себя отправку сервером формируемого компьютером аудиосигнала электронному устройству.[019] In some embodiments of the method, the method further includes the server sending a computer-generated audio signal to the electronic device.

[020] В некоторых вариантах осуществления способа другая модель содержит модель обработки естественной речи (NLP, Natural Language Processing).[020] In some embodiments of the method, the other model comprises a Natural Language Processing (NLP) model.

[021] В некоторых вариантах осуществления способа одна или несколько моделей размещены на другом сервере.[021] In some embodiments of the method, one or more models are hosted on another server.

[022] В некоторых вариантах осуществления способа модель NLP представляет собой модель NN на основе трансформера.[022] In some embodiments of the method, the NLP model is a transformer-based NN model.

[023] В некоторых вариантах осуществления способа модель TTS представляет собой модель NN на основе трансформера.[023] In some embodiments of the method, the TTS model is a transformer-based NN model.

[024] В некоторых вариантах осуществления способа он дополнительно включает в себя: формирование сервером с использованием модели STT второй текстовой строки на основе второго аудиосигнала, являющегося звуковым представлением второго речевого фрагмента пользователя, соответствующего запросу, следующему за формируемым компьютером речевым фрагментом; формирование сервером на основе второй текстовой строки с использованием другой модели другой формируемой компьютером текстовой строки, являющейся текстовым представлением другого формируемого компьютером речевого фрагмента, подлежащего предоставлению пользователю; формирование сервером на основе другой формируемой компьютером текстовой строки с использованием модели TTS другого формируемого компьютером аудиосигнала, являющегося звуковым представлением другого формируемого компьютером речевого фрагмента, подлежащего предоставлению пользователю в ответ на второй речевой фрагмент пользователя; получение сервером от электронного устройства третьего аудиосигнала, являющегося звуковым представлением третьего речевого фрагмента пользователя, соответствующего другому запросу, следующему за другим формируемым компьютером речевым фрагментом; и формирование сервером с использованием модели STT на основе третьего аудиосигнала, формируемой компьютером текстовой строки и другой формируемой компьютером текстовой строки третьей текстовой строки, являющейся текстовым представлением третьего речевого фрагмента пользователя, с учетом формируемой компьютером текстовой строки и другой формируемой компьютером текстовой строки в качестве контекста другого следующего запроса.[024] In some embodiments of the method, it further includes: the server, using the STT model, generating a second text string based on a second audio signal that is an audio representation of the user's second speech fragment corresponding to the request following the computer-generated speech fragment; generating by the server, based on the second text string using a different model, another computer-generated text string that is a text representation of another computer-generated speech fragment to be provided to the user; generating by the server, from the other computer-generated text string using the TTS model, another computer-generated audio signal that is an audio representation of another computer-generated speech fragment to be provided to the user in response to the second speech fragment of the user; receiving by the server from the electronic device a third audio signal, which is an audio representation of a third speech fragment of the user, corresponding to another request following another computer-generated speech fragment; and generating by the server, using the STT model, based on the third audio signal, a computer-generated text string and the other computer-generated text string, a third text string that is a textual representation of the third speech portion of the user, taking into account the computer-generated text string and the other computer-generated text string as the context of the other next request.

[025] В некоторых вариантах осуществления способа он дополнительно включает в себя отправку сервером другого формируемого компьютером аудиосигнала электронному устройству.[025] In some embodiments of the method, it further includes the server sending another computer-generated audio signal to the electronic device.

[026] Согласно второму аспекту настоящей технологии реализован сервер для формирования текстовых представлений речевого фрагмента пользователя. Речевой фрагмент пользователя получается электронным устройством, связанным с пользователем и способным связываться с сервером. Речевой фрагмент пользователя предоставляется в ответ на формируемые компьютером речевые фрагменты, выданные электронным устройством. Сервер содержит процессор и машиночитаемый физический носитель информации, хранящий команды. Процессор при исполнении команд способен: получать от электронного устройства аудиосигнал, являющийся звуковым представлением речевого фрагмента пользователя, представляющего собой ответ на формируемый компьютером речевой фрагмент, ранее выданный электронным устройством пользователю; получать формируемую компьютером текстовую строку, являющимся текстовым представлением формируемого компьютером речевого фрагмента; и формировать с использованием модели STT другую текстовую строку, являющуюся текстовым представлением речевого фрагмента пользователя, на основе аудиосигнала и формируемой компьютером текстовой строки, учитываемой в качестве контекста речевого фрагмента пользователя.[026] According to the second aspect of the present technology, a server is implemented for generating text representations of a user's speech fragment. The user's speech fragment is received by an electronic device associated with the user and capable of communicating with the server. The user's speech fragment is provided in response to computer-generated speech fragments output by the electronic device. The server contains a processor and a machine-readable physical storage medium that stores instructions. When executing commands, the processor is capable of: receiving from an electronic device an audio signal, which is an audio representation of a user's speech fragment, which is a response to a computer-generated speech fragment previously issued by the electronic device to the user; receive a computer-generated text string that is a text representation of a computer-generated speech fragment; and generating, using the STT model, another text string, which is a text representation of the user's speech fragment, based on the audio signal and a computer-generated text string, taken into account as the context of the user's speech fragment.

[027] В некоторых вариантах осуществления сервера процессор дополнительно способен: формировать с использованием модели STT первую текстовую строку, являющуюся текстовым представлением первого речевого фрагмента пользователя, на основе первого аудиосигнала, являющегося звуковым представлением первого речевого фрагмента пользователя; формировать с использованием другой модели формируемую компьютером текстовую строку на основе первой текстовой строки; и формировать с использованием модели TTS формируемый компьютером аудиосигнал, являющийся звуковым представлением формируемого компьютером речевого фрагмента, на основе формируемой компьютером текстовой строки.[027] In some server embodiments, the processor is further capable of: generating, using the STT model, a first text string that is a textual representation of the user's first speech segment based on the first audio signal that is an audio representation of the user's first speech segment; generating, using another model, a computer-generated text string based on the first text string; and generating, using the TTS model, a computer-generated audio signal that is an audio representation of the computer-generated speech fragment based on the computer-generated text string.

[028] В некоторых вариантах осуществления сервера модель STT представляет собой сеть NN с архитектурой кодер-декодер, содержащую стек слоев кодера и стек слоев декодера, а процессор способен формировать другую текстовую строку путем: формирования звукового вектора, представляющего аудиосигнал, с использованием алгоритма векторизации звука; ввода звукового вектора в стек кодера сети NN; формирования с использованием алгоритма векторизации текста текстового вектора, представляющего формируемую компьютером текстовую строку; и ввода текстового вектора в стек декодера сети NN.[028] In some embodiments of the server, the STT model is an NN network with an encoder-decoder architecture containing a stack of encoder layers and a stack of decoder layers, and the processor is capable of generating another text string by: generating an audio vector representing the audio signal using an audio vectorization algorithm ; inputting the audio vector into the NN network encoder stack; generating, using a text vectorization algorithm, a text vector representing a computer-generated text string; and inputting the text vector into the NN network decoder stack.

[029] В некоторых вариантах осуществления сервера сеть NN представляет собой сеть NN на основе трансформера.[029] In some server embodiments, the NN is a transformer-based NN.

[030] В некоторых вариантах осуществления сервера процессор дополнительно способен обучать модель STT на этапе обучения на основе обучающего набора данных, содержащего множество обучающих объектов, при этом обучающий объект содержит: (а) указание на обучающий аудиосигнал, сформированный на основе обучающего речевого фрагмента пользователя, произнесенного обучающим пользователем; (б) первую обучающую текстовую строку, являющуюся текстовым представлением обучающего речевого фрагмента пользователя; и (в) вторую обучающую текстовую строку, используемую для предоставления контекста для первой текстовой строки и являющуюся текстовым представлением соответствующего формируемого компьютером речевого фрагмента, в ответ на который обучающий пользователь произнес обучающий речевой фрагмент пользователя.[030] In some embodiments of the server, the processor is further capable of training an STT model in a training phase based on a training data set containing a plurality of training objects, wherein the training object comprises: (a) an indication of a training audio signal generated from a training speech fragment of the user, spoken by the training user; (b) a first training text string, which is a text representation of the user's training speech fragment; and (c) a second training text string used to provide context for the first text string and being a textual representation of the corresponding computer-generated speech fragment in response to which the training user uttered the user's training speech fragment.

[031] В некоторых вариантах осуществления сервера другая модель содержит модель NLP.[031] In some server embodiments, the other model comprises an NLP model.

[032] В некоторых вариантах осуществления сервера одна или несколько моделей размещены на другом сервере, связанном с сервером.[032] In some server embodiments, one or more models are hosted on another server associated with the server.

[033] В контексте настоящего описания трансформерная модель представляет собой модель с архитектурой вида «кодер-декодер», в которой используются механизмы внимания. Механизмы внимания могут применяться при обработке данных кодером, при обработке данных декодером и при взаимодействиях кодер-декодер. В трансформерной модели может использоваться множество механизмов внимания.[033] In the context of the present description, a transformer model is a model with an encoder-decoder architecture that uses attention mechanisms. Attention mechanisms can be used in encoder processing, decoder processing, and encoder-decoder interactions. A variety of attention mechanisms can be used in the transformer model.

[034] Один из компонентов трансформерной модели может представлять собой механизм самовнимания. Различие между механизмом внимания и механизмом самовнимания заключается в том, что механизм самовнимания работает со схожими представлениями, например, со всеми состояниями кодера в одном слое. Механизм самовнимания входит в состав трансформерной модели, в которой токены взаимодействуют друг с другом. Каждый токен, в известном смысле, «наблюдает» за другими токенами в предложении с помощью механизма внимания, собирает контекст и обновляет свое предыдущее представление. Каждый входной токен в механизме самовнимания получает три представления: (а) запрос, (б) ключ и (в) значение. Запрос используется, когда токен наблюдает за другими токенами: он ищет информацию, чтобы лучше «понимать» себя. Ключ реагирует на появление запроса - он используется для расчета весов внимания. Значение используется для расчета результата внимания: оно предоставляет информацию о токенах, которые сообщают, что им это требуется (т.е. таким токенам присваиваются большие веса).[034] One component of the transformer model may be a self-attention mechanism. The difference between an attention mechanism and a self-attention mechanism is that a self-attention mechanism operates on similar representations, such as all encoder states in one layer. The self-attention mechanism is part of the transformer model, in which tokens interact with each other. Each token, in a sense, “observes” the other tokens in the sentence through an attention mechanism, gathers context, and updates its previous representation. Each input token in a self-attention mechanism receives three representations: (a) query, (b) key, and (c) value. A query is used when a token observes other tokens: it seeks information to better “understand” itself. The key reacts to the appearance of a request - it is used to calculate attention weights. The value is used to calculate the attention result: it provides information about the tokens that report that they need it (i.e., those tokens are given higher weights).

[035] Другой компонент трансформерной модели может представлять собой механизм маскированного самовнимания. Декодер обычно содержит этот особый механизм самовнимания, отличающийся от механизма самовнимания в кодере. Кодер получает все токены одновременно, при этом токены могут наблюдать за всеми токенами во входном предложении, а в декодере токены формируются поодиночке, т.е. во время формирования модели неизвестно, какие токены будут сформированы в будущем. Чтобы запретить декодеру «просмотр вперед», в трансформерной модели используется механизм маскированного самовнимания, т.е. будущие токены маскируются.[035] Another component of the transformer model may be a masked self-attention mechanism. The decoder typically contains this special self-attention mechanism, which is different from the self-attention mechanism in the encoder. The encoder receives all the tokens simultaneously, while the tokens can observe all the tokens in the input sentence, and in the decoder the tokens are formed one by one, i.e. During the formation of the model, it is unknown which tokens will be formed in the future. To prevent the decoder from “looking ahead,” the transformer model uses a mechanism of masked self-attention, i.e. future tokens are masked.

[036] Еще один компонент трансформерной модели может представлять собой механизм многоголового внимания. Следует отметить, что для понимания роли слова в предложении требуется понимание того, как оно связано с различными частями предложения. Это важно не только при обработке исходного предложения, но и при формировании целей. В результате благодаря механизму внимания этого вида трансформерная модель может «концентрироваться» на различных вещах. Механизм многоголового внимания вместо одного механизма внимания содержит несколько независимо работающих голов. Он может быть реализован в виде нескольких механизмов внимания, результаты которых объединяются.[036] Another component of the transformer model may be a multi-headed attention mechanism. It should be noted that understanding the role of a word in a sentence requires understanding how it relates to the different parts of the sentence. This is important not only when processing the initial sentence, but also when forming goals. As a result, thanks to this type of attention mechanism, the transformer model can “concentrate” on various things. The multi-headed attention mechanism, instead of one attention mechanism, contains several independently working heads. It can be implemented in the form of several attention mechanisms, the results of which are combined.

[037] Кодер трансформерной модели может содержать механизм самовнимания кодера и блок сети прямого распространения. Механизм самовнимания кодера может представлять собой механизм многоголового внимания, используемый для наблюдения токенами друг за другом. Запросы, ключи и значения рассчитываются на основе состояний кодера. Блок сети прямого распространения получает информацию из токенов и обрабатывает эту информацию.[037] The transformer model encoder may comprise a self-attention encoder mechanism and a feed-forward network block. The encoder self-attention mechanism may be a multi-headed attention mechanism used to keep tokens observing each other. Queries, keys, and values are calculated based on encoder states. The forward distribution network block receives information from tokens and processes this information.

[038] Декодер трансформерной модели может содержать механизм (маскированного) самовнимания декодера, механизм внимания декодер-кодер и сеть прямого распространения. Механизм маскированного самовнимания декодера может представлять собой механизм маскированного многоголового внимания, используемый для наблюдения со стороны токенов за предыдущими токенами. Запросы, ключи и значения рассчитываются на основе состояний декодера. Механизм внимания декодер-кодер может представлять собой механизм многоголового внимания, используемый для просмотра исходной информации целевыми токенами. Запросы рассчитываются на основе состояний декодера, а ключи и значения рассчитываются на основе состояний кодера. Блок сети прямого распространения получает информацию из токенов и обрабатывает эту информацию.[038] A transformer model decoder may comprise a (masked) decoder self-attention mechanism, a decoder-encoder attention mechanism, and a feed-forward network. The decoder's masked self-attention mechanism may be a masked multi-headed attention mechanism used to observe previous tokens on the part of the tokens. Queries, keys, and values are calculated based on the decoder states. The decoder-encoder attention mechanism can be a multi-headed attention mechanism used to view source information by target tokens. Queries are calculated based on decoder states, and keys and values are calculated based on encoder states. The forward distribution network block receives information from tokens and processes this information.

[039] Можно сказать, что токены в кодере поддерживают связь друг с другом и обновляют свои представления. Также можно сказать, что в декодере целевой токен сначала просматривает ранее сформированные целевые токены, затем источник и, наконец, обновляет свои представления. Это может повторяться в нескольких слоях. В одном не имеющем ограничительного характера варианте реализации это может повторяться шесть раз.[039] The tokens in the encoder can be said to communicate with each other and update their representations. It can also be said that in a decoder, the target token first looks at the previously formed target tokens, then the source, and finally updates its representations. This can be repeated in several layers. In one non-limiting embodiment, this may be repeated six times.

[040] Как описано выше, в дополнение к механизму внимания слой содержит блок сети прямого распространения. Например, блок сети прямого распространения может быть представлен двумя линейными слоями с нелинейной связью вида «усеченное линейное преобразование» (ReLU, Rectifier Linear Unit) между ними. После просмотра других токенов с помощью механизма внимания в модели для обработки этой новой информации используется блок сети прямого распространения. Трансформерная модель может дополнительно содержать остаточные связи для добавления входных данных блока к его выходным данным. Остаточные связи могут использоваться для объединения слоев. В трансформерной модели остаточные связи могут использоваться после соответствующего механизма внимания и блока сети прямого распространения. Например, слою «Add & Norm» (суммирование и нормализация) могут предоставляться (а) входные данные механизма внимания через остаточную связь и (б) выходные данные механизма внимания. Затем результат слоя «Add & Norm» может предоставляться блоку сети прямого распространения или другому механизму внимания. В другом примере слою «Add & Norm» могут предоставляться (а) входные данные блока сети прямого распространения через остаточную связь и (б) выходные блока сети прямого распространения. Как описано выше, трансформерная модель может содержать слои «Add & Norm». В общем случае такой слой может независимо нормализовывать векторное представление каждого примера в пакете. Это выполняется для управления «потоком» в следующий слой. Нормализация слоя позволяет повышать устойчивость схождения и в некоторых случаях даже качество.[040] As described above, in addition to the attention mechanism, the layer contains a feedforward network block. For example, a feedforward network block can be represented by two linear layers with a nonlinear connection of the form “truncated linear transformation” (ReLU, Rectifier Linear Unit) between them. After viewing other tokens using the attention mechanism, the model uses a feedforward network block to process this new information. The transformer model may further contain residual connections to add the block's inputs to its outputs. Residual links can be used to combine layers. In the transformer model, residual connections can be used after the corresponding attention mechanism and feedforward network block. For example, the Add & Norm layer may be provided with (a) attention engine inputs through a residual connection and (b) attention engine outputs. The result of the Add & Norm layer can then be provided to a feedforward network block or other attention mechanism. In another example, the Add & Norm layer may be provided with (a) feedforward network block inputs via a residual link and (b) feedforward network block outputs. As described above, the transformer model may contain "Add & Norm" layers. In general, such a layer can independently normalize the vector representation of each example in the batch. This is done to control the "flow" into the next layer. Layer normalization allows you to increase convergence stability and, in some cases, even quality.

[041] В контексте настоящего описания термин «сервер» означает компьютерную программу, выполняемую соответствующими аппаратными средствами и способную принимать запросы (например, от клиентских устройств) через сеть и выполнять эти запросы или инициировать их выполнение. Аппаратные средства могут представлять собой один физический компьютер или одну компьютерную систему, что не существенно для настоящей технологии. В настоящем контексте выражение «сервер» не означает, что каждая задача (например, принятая команда или запрос) или некоторая конкретная задача принимается, выполняется или запускается одним и тем же сервером (т.е. одними и теми же программными и/или аппаратными средствами). Это выражение означает, что любое количество программных средств или аппаратных средств может принимать, отправлять, выполнять или инициировать выполнение любой задачи или запроса либо результаты любых задач или запросов. Все эти программные и аппаратные средства могут представлять собой один сервер или несколько серверов, причем оба эти случая подразумеваются в выражении «по меньшей мере один сервер».[041] As used herein, the term “server” means a computer program executed by associated hardware and capable of receiving requests (eg, from client devices) over a network and executing or initiating execution of those requests. The hardware may be one physical computer or one computer system, which is not essential for this technology. In the present context, the expression "server" does not mean that every task (for example, a received command or request) or any particular task is accepted, executed or launched by the same server (i.e. the same software and/or hardware ). This expression means that any number of software or hardware can receive, send, execute, or initiate the execution of any task or request, or the results of any tasks or requests. All of these software and hardware may be a single server or multiple servers, both of which are implied by the expression “at least one server.”

[042] В контексте настоящего описания термин «клиентское устройство» означает любое компьютерное аппаратное средство, способное выполнять программы, подходящие для решения поставленной задачи. Таким образом, некоторые (не имеющие ограничительного характера) примеры клиентских устройств включают в себя персональные компьютеры (настольные, ноутбуки, нетбуки и т.п.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует отметить, что в данном контексте устройство, функционирующее как клиентское устройство, также может функционировать как сервер для других клиентских устройств. Использование выражения «клиентское устройство» не исключает использования нескольких клиентских устройств для приема, отправки, выполнения или инициирования выполнения любой задачи или запроса либо результатов любых задач или запросов, либо шагов любого описанного здесь способа.[042] As used herein, the term “client device” means any computer hardware capable of executing programs suitable for solving a given task. Thus, some (non-limiting) examples of client 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 in this context, a device functioning as a client device may also function as a server for other client devices. The use of the expression “client device” does not exclude the use of multiple client devices to receive, send, perform, or initiate execution of any task or request, or the results of any tasks or requests, or steps of any method described herein.

[043] В контексте настоящего описания термин «база данных» означает любой структурированный набор данных, независимо от его конкретной структуры, программного обеспечения для управления базой данных или компьютерных аппаратных средств для хранения этих данных, их применения или обеспечения их использования иным способом. База данных может располагаться в тех же аппаратных средствах, где реализован процесс, обеспечивающий хранение или использование информации, хранящейся в базе данных, либо база данных может располагаться в отдельных аппаратных средствах, таких как специализированный сервер или множество серверов.[043] As used herein, the term “database” means any structured collection of data, regardless of its specific structure, database management software, or computer hardware for storing, using, or otherwise making use of that data. The database may reside in the same hardware as the process that stores or uses the information stored in the database, or the database may reside in separate hardware, such as a dedicated server or multiple servers.

[044] В контексте настоящего описания выражение «информация» включает в себя информацию любого рода или вида, допускающую хранение в базе данных. Таким образом, информация включает в себя аудиовизуальные произведения (изображения, фильмы, звукозаписи, презентации и т.д.), данные (данные о местоположении, числовые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, электронные таблицы, списки слов и т.д., но не ограничивается ими.[044] As used herein, the expression “information” includes information of any kind or kind capable of being stored in a database. Thus, information includes audiovisual works (images, films, sound recordings, presentations, etc.), data (location data, numerical data, etc.), text (opinions, comments, questions, messages, etc. .etc.), documents, spreadsheets, word lists, etc., but is not limited to them.

[045] В контексте настоящего описания выражение «компонент» включает в себя обозначение программного обеспечения (подходящего для определенных аппаратных средств), необходимого и достаточного для выполнения определенной функции или нескольких функций.[045] As used herein, the expression "component" includes a designation of software (suitable for certain hardware) necessary and sufficient to perform a particular function or multiple functions.

[046] В контексте настоящего описания выражение «пригодный для использования в компьютере носитель информации» означает носители любого рода и вида, включая оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), диски (CD-ROM, DVD, гибкие диски, жесткие диски и т.д.), USB-накопители, твердотельные накопители, накопители на магнитных лентах и т.д.[046] As used herein, the expression "computer-readable storage medium" means media of any kind or form, including random access memory (RAM), read-only memory (ROM), disks (CD-ROM, DVD, floppy disks, hard drives, etc.), USB flash drives, solid state drives, tape drives, etc.

[047] В контексте настоящего описания числительные «первый», «второй», «третий» и т.д. используются лишь для указания на различие между существительными, к которым они относятся, но не для описания каких-либо определенных взаимосвязей между этими существительными. Например, должно быть понятно, что использование терминов «первый сервер» и «третий сервер» не подразумевает какого-либо определенного порядка, типа, хронологии, иерархии или классификации, в данном случае, серверов, а также что их использование (само по себе) не подразумевает наличие «второго сервера» в любой ситуации. Кроме того, как встречается в настоящем описании в другом контексте, ссылка на «первый» элемент и «второй» элемент не исключает того, что эти два элемента в действительности могут быть одним и тем же элементом. Таким образом, например, в некоторых случаях «первый» сервер и «второй» сервер могут представлять собой одно и то же программное и/или аппаратное средство, а в других случаях - различные программные и/или аппаратные средства.[047] As used herein, the numerals "first", "second", "third", etc. are used only to indicate differences between the nouns they refer to, but not to describe any specific relationships between those nouns. For example, it should be clear that the use of the terms "first server" and "third server" does not imply any particular order, type, chronology, hierarchy or classification, in this case, of servers, nor that their use (in itself) does not imply the presence of a “second server” in any situation. Moreover, as occurs herein in other contexts, reference to a “first” element and a “second” element does not preclude the fact that the two elements may in fact be the same element. Thus, for example, in some cases the “first” server and the “second” server may be the same software and/or hardware, and in other cases different software and/or hardware.

[048] Каждый вариант осуществления настоящей технологии относится к по меньшей мере одной из вышеупомянутых целей и/или аспектов, но не обязательно ко всем ним. Должно быть понятно, что некоторые аспекты настоящей технологии, связанные с попыткой достижения вышеупомянутой цели, могут не соответствовать этой цели и/или могут соответствовать другим целям, явным образом здесь не упомянутым.[048] Each embodiment of the present technology relates to at least one of the above-mentioned objectives and/or aspects, but not necessarily all of them. It should be understood that some aspects of the present technology associated with attempting to achieve the above purpose may not be consistent with that purpose and/or may be consistent with other purposes not expressly mentioned herein.

[049] Дополнительные и/или альтернативные признаки, аспекты и преимущества вариантов осуществления настоящей технологии содержатся в дальнейшем описании, в приложенных чертежах и в формуле изобретения.[049] Additional and/or alternative features, aspects and advantages of embodiments of the present technology are set forth in the following description, the accompanying drawings, and the claims.

Краткое описание чертежейBrief description of drawings

[050] Дальнейшее описание приведено для лучшего понимания настоящей технологии, а также других аспектов и их признаков, и должно использоваться совместно с приложенными чертежами.[050] The following description is provided for a better understanding of the present technology, as well as other aspects and their features, and should be used in conjunction with the accompanying drawings.

[051] На фиг. 1 представлена схема примера компьютерной системы для реализации некоторых вариантов осуществления систем и/или способов согласно настоящей технологии.[051] In FIG. 1 is a diagram of an example computer system for implementing certain embodiments of systems and/or methods in accordance with the present technology.

[052] На фиг. 2 представлена сетевая вычислительная среда, пригодная для некоторых вариантов осуществления настоящей технологии.[052] In FIG. 2 illustrates a networked computing environment suitable for some embodiments of the present technology.

[053] На фиг. 3 представлена схема процесса формирования приложением виртуального помощника, размещенным на сервере из сетевой вычислительной среды, представленной на фиг. 2, соответствующего речевого ответа на речевой фрагмент согласно не имеющим ограничительного характера вариантам осуществления настоящей технологии.[053] In FIG. 3 shows a diagram of the process of creating a virtual assistant application hosted on a server from the network computing environment shown in FIG. 2, a corresponding speech response to a speech fragment according to non-limiting embodiments of the present technology.

[054] На фиг. 4 представлена схема архитектуры модели машинного обучения, пригодной для использования в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии.[054] In FIG. 4 is a diagram of a machine learning model architecture suitable for use in certain non-limiting embodiments of the present technology.

[055] На фиг. 5 представлена схема модели TTS для формирования соответствующего речевого ответа на речевой фрагмент пользователя, реализованной на основе архитектуры модели машинного обучения, представленной на фиг. 4, и размещенной на сервере из сетевой вычислительной среды, представленной на фиг. 2, согласно не имеющим ограничительного характера вариантам осуществления настоящей технологии.[055] In FIG. 5 shows a diagram of the TTS model for generating an appropriate speech response to a user's speech fragment, implemented based on the architecture of the machine learning model presented in FIG. 4, and hosted on a server from the network computing environment shown in FIG. 2, according to non-limiting embodiments of the present technology.

[056] На фиг. 6 представлена схема модели STT, реализованной на основе архитектуры модели машинного обучения, представленной на фиг. 4, в ходе ее обучения сервером из сетевой вычислительной среды, представленной на фиг. 2, формированию текстового представления речевого фрагмента пользователя для формирования моделью TTS соответствующего речевого ответа на него согласно не имеющим ограничительного характера вариантам осуществления настоящей технологии.[056] In FIG. 6 is a diagram of the STT model implemented based on the machine learning model architecture shown in FIG. 4, during its training by a server from the network computing environment shown in FIG. 2, generating a textual representation of the user's speech fragment for the TTS model to generate an appropriate speech response to it in accordance with non-limiting embodiments of the present technology.

[057] На фиг. 7 представлена схема модели STT, представленной на фиг. 6, в ходе ее применения на этапе использования согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии.[057] In FIG. 7 is a diagram of the STT model shown in FIG. 6 during its application in the use phase according to certain non-limiting embodiments of the present technology.

[058] На фиг. 8 представлена блок-схема способа формирования сервером из сетевой вычислительной среды, представленной на фиг. 2, текстового представления речевого фрагмента пользователя согласно не имеющим ограничительного характера вариантам осуществления настоящей технологии.[058] In FIG. 8 is a flow diagram of a method for generating a server from the network computing environment shown in FIG. 2, a textual representation of a user's speech fragment according to non-limiting embodiments of the present technology.

Осуществление изобретенияCarrying out the invention

[059] Представленные здесь примеры и условный язык предназначены для обеспечения лучшего понимания принципов настоящей технологии, а не для ограничения ее объема до таких специально приведенных примеров и условий. Очевидно, что специалисты в данной области техники способны разработать различные способы и устройства, которые явно не описаны и не показаны, но реализуют принципы настоящей технологии в пределах ее существа и объема.[059] The examples and conventional language presented here are intended to provide a better understanding of the principles of this technology and not to limit its scope to such specifically provided examples and conditions. It is obvious that those skilled in the art are capable of developing various methods and devices that are not explicitly described or shown, but implement the principles of the present technology within its spirit and scope.

[060] Кроме того, чтобы способствовать лучшему пониманию, последующее описание может содержать упрощенные варианты реализации настоящей технологии. Специалистам в данной области техники должно быть понятно, что другие варианты осуществления настоящей технологии могут быть значительно сложнее.[060] In addition, to facilitate a better understanding, the following description may contain simplified embodiments of the present technology. Those skilled in the art will appreciate that other embodiments of the present technology may be significantly more complex.

[061] В некоторых случаях приводятся полезные примеры модификаций настоящей технологии. Они способствуют пониманию, но также не определяют объема или границ настоящей технологии. Представленный перечень модификаций не является исчерпывающим и специалист в данной области техники может разработать другие модификации в пределах объема настоящей технологии. Кроме того, если в некоторых случаях модификации не описаны, это не означает, что они невозможны и/или что описание содержит единственно возможный вариант реализации того или иного элемента настоящей технологии.[061] In some cases, useful examples of modifications to the present technology are provided. They promote understanding, but also do not define the scope or boundaries of the actual technology. The presented list of modifications is not exhaustive and other modifications may be developed by one skilled in the art within the scope of this technology. In addition, if in some cases modifications are not described, this does not mean that they are impossible and/or that the description contains the only possible implementation of a particular element of this technology.

[062] Более того, описание принципов, аспектов и вариантов реализации настоящей технологии, а также их конкретные примеры предназначены для охвата их структурных и функциональных эквивалентов, независимо от того, известны они в настоящее время или будут разработаны в будущем. Например, специалистам в данной области техники должно быть понятно, что любые описанные здесь структурные схемы соответствуют концептуальным представлениям иллюстративных принципиальных схем, реализующих основы настоящей технологии. Также должно быть понятно, что любые блок-схемы, схемы процессов, диаграммы изменения состояния, псевдокоды и т.п. соответствуют различным процессам, которые могут быть представлены на машиночитаемом физическом носителе информации и могут выполняться компьютером или процессором, независимо от того, показан такой компьютер или процессор явно или нет.[062] Moreover, the description of the principles, aspects and embodiments of the present technology, as well as specific examples thereof, are intended to cover their structural and functional equivalents, whether currently known or developed in the future. For example, those skilled in the art will appreciate that any block diagrams described herein correspond to the conceptual representations of illustrative circuit diagrams implementing the fundamentals of the present technology. It should also be clear that any flowcharts, process diagrams, state transition diagrams, pseudo codes, etc. correspond to various processes that may be represented on a computer-readable physical storage medium and may be performed by a computer or processor, whether such computer or processor is explicitly shown or not.

[063] Функции различных элементов, показанных на чертежах, включая любой функциональный блок, обозначенный как «процессор» или «графический процессор», могут быть реализованы с использованием специализированных аппаратных средств, а также с использованием аппаратных средств, способных выполнять соответствующее программное обеспечение. Если используется процессор, эти функции могут выполняться одним выделенным процессором, одним совместно используемым процессором и/или множеством отдельных процессоров, некоторые из которых могут использоваться совместно. В некоторых вариантах осуществления настоящей технологии процессор может представлять собой процессор общего назначения, такой как центральный процессор (CPU), или специализированный процессор, такой как графический процессор (GPU). Кроме того, явное использование термина «процессор» или «контроллер» не должно трактоваться как указание исключительно на аппаратные средства, способные выполнять программное обеспечение, и может подразумевать, помимо прочего, аппаратные средства цифрового сигнального процессора (DSP), сетевой процессор, специализированную интегральную схему (ASIC), программируемую вентильную матрицу (FPGA), ПЗУ для хранения программного обеспечения, ОЗУ и/или энергонезависимое запоминающее устройство. Также могут подразумеваться другие аппаратные средства, общего назначения и/или заказные.[063] The functions of the various elements shown in the drawings, including any functional unit designated as a “processor” or a “graphics processor,” may be implemented using dedicated hardware, as well as using hardware capable of executing the associated software. If a processor is used, these functions may be performed by one dedicated processor, one shared processor, and/or a plurality of 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 special purpose processor, 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 include, but is not limited to, digital signal processor (DSP) hardware, network processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), software ROM, RAM, and/or non-volatile storage device. Other hardware, general purpose and/or custom, may also be included.

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

[065] Далее с учетом вышеизложенных принципов рассмотрены некоторые не имеющие ограничительного характера примеры, иллюстрирующие различные варианты реализации аспектов настоящей технологии.[065] Given the foregoing principles, some non-limiting examples are provided below to illustrate various embodiments of aspects of the present technology.

Компьютерная системаComputer system

[066] На фиг. 1 представлена компьютерная система 100, пригодная для использования в некоторых вариантах осуществления настоящей технологии. Компьютерная система 100 содержит различные аппаратные элементы, включая один или несколько одноядерных или многоядерных процессоров, обобщенно представленных процессором 110, графический процессор 111 (GPU, Graphics Processing Unit), твердотельный накопитель 120, ОЗУ 130, интерфейс 140 дисплея и интерфейс 150 ввода-вывода.[066] In FIG. 1 illustrates a computer system 100 suitable for use in some embodiments of the present technology. The computer system 100 includes various hardware elements, including one or more single-core or multi-core processors, generally represented by a processor 110, a graphics processing unit (GPU) 111, a solid-state drive 120, a RAM 130, a display interface 140, and an input/output interface 150.

[067] Связь между различными элементами компьютерной системы 100 может осуществляться через одну или несколько внутренних и/или внешних шин 160 (таких как шина PCI, шина USB, шина FireWire стандарта IEEE 1394, шина SCSI, шина Serial-ATA и т.д.), с которыми различные аппаратные элементы соединены электронными средствами.[067] Communication between various elements of the computer system 100 may occur through one or more internal and/or external buses 160 (such as a PCI bus, a USB bus, an IEEE 1394 FireWire bus, a SCSI bus, a Serial-ATA bus, etc. ) to which various hardware elements are connected electronically.

[068] Интерфейс 150 ввода-вывода может соединяться с сенсорным экраном 190 и/или с одной или несколькими внутренними и/или внешними шинами 160. Сенсорный экран 190 может входить в состав дисплея. В некоторых вариантах реализации сенсорный экран 190 представляет собой дисплей. Сенсорный экран 190 может также называться экраном 190. В представленных на фиг. 1 вариантах осуществления изобретения сенсорный экран 190 содержит сенсорные аппаратные средства 194 (например, чувствительные к нажатию ячейки, встроенные в слой дисплея и позволяющие фиксировать физическое взаимодействие между пользователем и дисплеем) и контроллер 192 ввода-вывода для сенсорных устройств, который обеспечивает связь с интерфейсом 140 дисплея и/или с одной или несколькими внутренними и/или внешними шинами 160. В некоторых вариантах осуществления изобретения интерфейс 150 ввода-вывода может соединяться с клавиатурой (не показана), мышью (не показана) или сенсорной площадкой (не показана), которые обеспечивают взаимодействие пользователя с компьютерной системой 100 в дополнение к сенсорному экрану 190 или вместо него. В некоторых вариантах осуществления изобретения компьютерная система 100 может содержать один или несколько микрофонов (не показаны). Микрофоны могут записывать аудиосигнал, такой как речевые фрагменты пользователя. Речевые фрагменты пользователя могут преобразовываться в команды для управления компьютерной системой 100.[068] I/O interface 150 may couple to touch screen 190 and/or one or more internal and/or external buses 160. Touch screen 190 may be included in a display. In some embodiments, the touch screen 190 is a display. The touch screen 190 may also be referred to as a screen 190. In FIGS. 1 embodiments, touch screen 190 includes touch hardware 194 (e.g., pressure-sensitive cells embedded in the display layer to capture physical interaction between the user and the display) and a touch I/O controller 192 that provides communication with interface 140 display and/or with one or more internal and/or external buses 160. In some embodiments, the I/O interface 150 may be coupled to a keyboard (not shown), mouse (not shown), or touch pad (not shown) that provides user interaction with the computer system 100 in addition to or instead of the touch screen 190. In some embodiments, computer system 100 may include one or more microphones (not shown). Microphones can record audio, such as a user's speech. The user's speech fragments may be converted into commands to control the computer system 100.

[069] Следует отметить, что в некоторых не имеющих ограничительного характера вариантах осуществления изобретения некоторые элементы компьютерной системы 100 могут отсутствовать. Например, может отсутствовать сенсорный экран 190, в частности, если компьютерная система реализована в виде интеллектуального акустического устройства (но не ограничиваясь этим).[069] It should be noted that in some non-limiting embodiments of the invention, certain elements of the computer system 100 may be missing. For example, there may be no touch screen 190, particularly if the computer system is implemented as a smart speaker device (but not limited to).

[070] Согласно вариантам осуществления настоящей технологии, твердотельный накопитель 120 хранит программные команды, пригодные для загрузки в ОЗУ 130 и исполнения процессором 110 и/или процессором 111 GPU. Программные команды могут, например, входить в состав библиотеки или приложения.[070] According to embodiments of the present technology, solid state drive 120 stores software instructions suitable for loading into RAM 130 and execution by processor 110 and/or GPU processor 111. Program instructions may, for example, be part of a library or application.

Сетевая вычислительная средаNetwork computing environment

[071] На фиг. 2 представлена схема сетевой вычислительной среды 200, пригодной для использования с некоторыми вариантами осуществления систем и/или способов согласно настоящей технологии. Сетевая вычислительная среда 200 содержит сервер 250, связанный через сеть 240 связи с электронным устройством 210. В не имеющих ограничительного характера вариантах осуществления настоящей технологии электронное устройство 210 может быть связано с пользователем 230.[071] In FIG. 2 is a diagram of a networked computing environment 200 suitable for use with certain embodiments of systems and/or methods of the present technology. Networked computing environment 200 includes a server 250 coupled through a communications network 240 to an electronic device 210. In non-limiting embodiments of the present technology, the electronic device 210 may be coupled to a user 230.

[072] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 250 реализован в виде традиционного компьютерного сервера и может содержать некоторые или все элементы компьютерной системы 100, представленной на фиг. 1. В одном не имеющем ограничительного характера примере сервер 250 реализован в виде сервера Dell™ PowerEdge™, работающего под управлением операционной системы Microsoft™ Windows Server™, но он также может быть реализован с использованием любых других подходящих аппаратных средств, прикладного программного обеспечения и/или встроенного программного обеспечения либо их сочетания. В представленных не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 250 представляет собой один сервер. В других не имеющих ограничительного характера вариантах осуществления настоящей технологии (не показаны) функции сервера 250 могут быть распределены между несколькими серверами.[072] In some non-limiting embodiments of the present technology, server 250 is implemented as a traditional computer server and may include some or all of the elements of the computer system 100 shown in FIG. 1. In one non-limiting example, server 250 is implemented as a Dell™ PowerEdge™ server running the Microsoft™ Windows Server™ operating system, but it may also be implemented using any other suitable hardware, application software and/or or embedded software or a combination thereof. In the illustrated non-limiting embodiments of the present technology, server 250 is a single server. In other non-limiting embodiments of the present technology (not shown), the functions of the server 250 may be distributed among multiple servers.

[073] Кроме того, электронное устройство 210 может представлять собой любые компьютерные аппаратные средства, способные выполнять программы, подходящие для решения поставленной задачи. Таким образом, в качестве некоторых не имеющих ограничительного характера примеров электронного устройства 210 можно привести персональные компьютеры (настольные, ноутбуки, нетбуки и т.п.), смартфоны и планшеты. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии электронное устройство 210 также может содержать некоторые или все элементы компьютерной системы 100, представленной на фиг. 1. Следует отметить, что электронное устройство 210 может содержать дополнительные элементы, такие как микрофон (отдельно не показан) для преобразования полученных звуков, зафиксированных вблизи электронного устройства 210, таких как речевые фрагменты пользователя 230, в машиночитаемый формат, такой как цифровой звуковой формат, включая, например, MP3, Ogg и т.п., и громкоговоритель (также отдельно не показан) для воспроизведения поступающих звуковых сигналов вблизи электронного устройства 210, как описано ниже.[073] In addition, electronic device 210 may be any computer hardware capable of executing programs suitable for solving a given task. Thus, some non-limiting examples of electronic device 210 include personal computers (desktops, laptops, netbooks, etc.), smartphones, and tablets. In some non-limiting embodiments of the present technology, electronic device 210 may also include some or all of the elements of the computer system 100 shown in FIG. 1. It should be noted that the electronic device 210 may include additional elements, such as a microphone (not separately shown) for converting received sounds recorded in the vicinity of the electronic device 210, such as speech fragments of the user 230, into a machine-readable format, such as a digital audio format, including, for example, MP3, Ogg, etc., and a speaker (also not separately shown) for reproducing incoming audio signals in the vicinity of the electronic device 210, as described below.

[074] Кроме того, в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии сетевая вычислительная среда 200 может содержать второй сервер 260, связанный через сеть 240 связи с электронным устройством 210 и с сервером 250. Предполагается, что второй сервер 260 может быть реализован подобно серверу 250.[074] Additionally, in some non-limiting embodiments of the present technology, the networked computing environment 200 may include a second server 260 coupled via a communications network 240 to the electronic device 210 and to the server 250. It is contemplated that the second server 260 may be implemented similarly server 250.

[075] Согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, сетевая вычислительная среда 200 может обеспечивать и/или поддерживать автоматическую связь с пользователем 230, как описано ниже.[075] According to some non-limiting embodiments of the present technology, networked computing environment 200 may provide and/or maintain automatic communication with user 230, as described below.

[076] Например, в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии второй сервер 260 может быть связан с поставщиком услуг, предоставляющим услуги пользователям, таким как пользователь 230, для помощи в получении которых второй сервер 260 может содержать приложение 265 виртуального помощника. Соответственно, второй сервер 260 может обеспечивать доступ к приложению 265 виртуального помощника электронному устройству, связанному с сетью 240 связи, такому как электронное устройство 210.[076] For example, in some non-limiting embodiments of the present technology, the second server 260 may be associated with a service provider providing services to users, such as user 230, which the second server 260 may include a virtual assistant application 265 to assist in obtaining. Accordingly, the second server 260 may provide access to the virtual assistant application 265 to an electronic device associated with the communications network 240, such as the electronic device 210.

[077] В общем случае приложение 265 виртуального помощника, которое здесь также называется приложением чатбота, может инициировать, а затем поддерживать автоматическую связь с пользователем 230 и способствовать в получении им услуг от поставщика услуг, связанного со вторым сервером 260. Например, приложение 265 виртуального помощника может быть задействовано путем активации соответствующего элемента управления пользователем 230, обращающимся к поставщику услуг с использованием электронного устройства 210, например, путем набора соответствующего телефонного номера или запуска приложения 265 виртуального помощника на веб-сайте, связанном с поставщиком услуг. Кроме того, в процессе поддержания автоматической связи с пользователем 230 приложение 265 виртуального помощника может получать речевой фрагмент 235 пользователя, содержащий пользовательский запрос пользователя 230, и предоставлять ему формируемый компьютером речевой фрагмент 270, который может содержать дополнительные вопросы, уточняющие данные пользователя 230, обращающегося к поставщику услуг.[077] In general, a virtual assistant application 265, also referred to herein as a chatbot application, may initiate and then maintain automatic communication with a user 230 and assist in obtaining services from a service provider associated with a second server 260. For example, a virtual assistant application 265 The assistant may be enabled by activating the appropriate control of the user 230 accessing the service provider using the electronic device 210, such as by dialing the appropriate telephone number or launching the virtual assistant application 265 on a website associated with the service provider. In addition, while maintaining automatic communication with user 230, virtual assistant application 265 may receive user speech 235 containing a user request from user 230 and provide the user with a computer-generated speech 270 that may contain additional questions that clarify the details of user 230 accessing the user. service provider.

[078] На реализацию приложения 265 виртуального помощника не накладывается каких-либо ограничений, она может зависеть от услуг, предоставляемых поставщиком услуг, связанным со вторым сервером 260. Например, если поставщик услуг представляет собой врача или медицинскую клинику, то приложение 265 виртуального помощника может управлять приемом пациентов (например, планировать, изменять или отменять его). В другом примере поставщик услуг может представлять собой платформу интернет-покупок, продающую различные продукты, такие как товары и услуги, а приложение 265 виртуального помощника может принимать и отправлять онлайн-заказы пользователя 230. В еще одном примере поставщик услуг может представлять собой обычный (не онлайн) продовольственный магазин или обычный ресторан, а приложение 265 виртуального помощника может принимать и отправлять заказы продуктов для пользователя 230. Также возможны другие варианты поставщиков услуг и соответствующих пользователей приложения 265 виртуального помощника без выхода за границы настоящей технологии.[078] The implementation of the virtual assistant application 265 is not subject to any restrictions and may depend on the services provided by the service provider associated with the second server 260. For example, if the service provider is a doctor or medical clinic, then the virtual assistant application 265 may Manage patient appointments (e.g., schedule, change, or cancel appointments). In another example, the service provider may be an online shopping platform that sells various products, such as goods and services, and the virtual assistant application 265 may receive and send online orders from user 230. In yet another example, the service provider may be a brick-and-mortar (not online) grocery store or brick-and-mortar restaurant, and the virtual assistant application 265 can accept and send grocery orders for the user 230. Other options for service providers and respective users of the virtual assistant application 265 are also possible without going beyond the boundaries of the present technology.

[079] В конкретном не имеющем ограничительного характера примере приложение 265 виртуального помощника может быть реализовано в виде приложения виртуального помощника ALISA™, предоставляемого компанией ООО Яндекс (ул. Льва Толстого, 16, Москва, 119021, Россия). Тем не менее, следует отметить, что приложение 265 виртуального помощника может быть реализовано в виде любого другого коммерчески доступного или проприетарного приложения виртуального помощника.[079] In a specific, non-limiting example, the virtual assistant application 265 may be implemented as the ALISA™ virtual assistant application provided by Yandex LLC (16 Lev Tolstogo St., Moscow, 119021, Russia). However, it should be noted that the virtual assistant application 265 may be implemented as any other commercially available or proprietary virtual assistant application.

[080] В частности, согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, для формирования соответствующего формируемого компьютером речевого фрагмента 270 для речевого фрагмента 235 пользователя приложение 265 виртуального помощника может: (1) инициировать получение с использованием микрофона электронного устройства 210 речевого фрагмента 235 пользователя для формирования на его основе звукового представления 245, представляющего речевой фрагмент 235 пользователя; (2) инициировать передачу звукового представления 245 речевого фрагмента серверу 250 для формирования текстового представления 255 речевого фрагмента; (3) инициировать передачу текстового представления 255 речевого фрагмента второму серверу 260 для формирования на основе текстового представления 255 речевого фрагмента формируемого компьютером речевого фрагмента 270; и (4) инициировать передачу данных, указывающих на соответствующий формируемый компьютером речевой фрагмент 270, электронному устройству 210 для его воспроизведения пользователю 230.[080] Specifically, according to some non-limiting embodiments of the present technology, to generate a corresponding computer-generated speech fragment 270 for a user speech fragment 235, the virtual assistant application 265 may: (1) cause the microphone of the electronic device 210 to receive the speech fragment 235 the user to generate from it an audio representation 245 representing the user's speech fragment 235; (2) initiate transmission of an audio representation 245 of the speech fragment to the server 250 to generate a text representation 255 of the speech fragment; (3) initiate transmission of the textual speech fragment representation 255 to the second server 260 to generate a computer-generated speech fragment 270 based on the textual speech fragment representation 255; and (4) initiate transmission of data indicating the corresponding computer-generated speech fragment 270 to the electronic device 210 for reproduction to the user 230.

[081] Согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии звуковое представление 245 речевого фрагмента может соответствовать амплитудно-временному представлению речевого фрагмента 235 пользователя, такому как представление оцифрованного соответствующего аудиосигнала в одном из вышеупомянутых форматов. В других не имеющих ограничительного характера вариантах осуществления настоящей технологии звуковое представление речевого фрагмента может соответствовать частотно-временному представлению речевого фрагмента 235 пользователя. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии частотно-временное представление может представлять собой соответствующую спектрограмму, связанную с речевым фрагментом 235 пользователя. Формирование спектрограмм не входит в задачу настоящей технологии. Тем не менее, вкратце, сервер 250 может формировать соответствующую спектрограмму речевого фрагмента 235 пользователя путем применения преобразования Фурье в отношении частей амплитудно-временного представления речевого фрагмента 235 пользователя, последовательно определяемых на основе заранее заданного временного окна. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии соответствующая спектрограмма может быть преобразована с использованием мел-шкалы. Например, соответствующая спектрограмма может быть сформирована, как описано в патентной заявке того же заявителя US17408958 «Method and system for classifying a user of an electronic device» (подана 23 августа 2021 г.), содержание которой полностью включено в настоящий документ посредством ссылки.[081] According to some non-limiting embodiments of the present technology, the audio representation 245 of a speech fragment may correspond to the amplitude-time representation of the user's speech fragment 235, such as a digitized representation of the corresponding audio signal in one of the above-mentioned formats. In other non-limiting embodiments of the present technology, the audio representation of the speech fragment may correspond to the time-frequency representation of the user's speech fragment 235. In some non-limiting embodiments of the present technology, the time-frequency representation may be a corresponding spectrogram associated with the user's speech fragment 235. Formation of spectrograms is not the task of this technology. However, in brief, server 250 can generate a corresponding spectrogram of user speech 235 by applying a Fourier transform to portions of the time-amplitude representation of user speech 235 sequentially determined based on a predetermined time window. In some non-limiting embodiments of the present technology, the corresponding spectrogram can be converted using a chalk scale. For example, a corresponding spectrogram may be generated as described in the same applicant's patent application US17408958, "Method and system for classifying a user of an electronic device" (filed August 23, 2021), the contents of which are incorporated herein by reference in their entirety.

[082] Кроме того, согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, текстовое представление 255 речевого фрагмента соответствует текстовой строке, представляющей речевой фрагмент 235 пользователя, который может быть сохранен и отправлен сервером 250 в одном из текстовых форматов, например, в виде обычного текста.[082] Additionally, according to some non-limiting embodiments of the present technology, the textual speech fragment representation 255 corresponds to a text string representing the user's speech fragment 235, which may be stored and sent by the server 250 in one of the text formats, such as plain text.

[083] Ниже с ссылкой на фиг. 3-7 описано формирование сервером 250 и вторым сервером 260 соответствующего формируемого компьютером речевого фрагмента 270 для речевого фрагмента 235 пользователя. Следует отметить, что сервер 250 и второй сервер 260 могут выполняться одним и тем же элементом или различными элементами без выхода за границы настоящей технологии.[083] Below with reference to FIG. 3-7 describe the generation by the server 250 and the second server 260 of a corresponding computer-generated speech fragment 270 for the user's speech fragment 235. It should be noted that the server 250 and the second server 260 may be implemented by the same element or by different elements without going beyond the scope of the present technology.

[084] На фиг. 3 представлена схема процесса формирования сетевой вычислительной средой 200 соответствующего формируемого компьютером речевого фрагмента 270 в ответ на получение речевого фрагмента 235 пользователя согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии.[084] In FIG. 3 is a diagram of a process for a networked computing environment 200 to generate a corresponding computer-generated speech fragment 270 in response to receiving a user speech fragment 235 in accordance with certain non-limiting embodiments of the present technology.

[085] Сначала, как описано выше, приложение 265 виртуального помощника может (а) инициировать получение речевого фрагмента 235 пользователя электронным устройством 210, формирующим в связи с этим соответствующее звуковое представление 245 речевого фрагмента, и (б) инициировать передачу электронным устройством 210 звукового представления 245 речевого фрагмента серверу 250 для распознавания речи в речевом фрагменте 235 пользователя и формирования текстового представления 255 речевого фрагмента.[085] First, as described above, the virtual assistant application 265 may (a) cause the user's speech fragment 235 to be received by the electronic device 210, thereby generating a corresponding audio representation 245 of the speech fragment, and (b) cause the electronic device 210 to transmit the audio representation. 245 of the speech fragment to the server 250 to recognize speech in the user's speech fragment 235 and generate a text representation 255 of the speech fragment.

[086] Для формирования текстового представления 255 речевого фрагмента из звукового представления 245 речевого фрагмента сервер 250 может содержать модель 302 STT (или осуществлять доступ к ней иным образом). Архитектура и конфигурация модели 302 STT для распознавания речи более подробно описаны ниже со ссылкой на фиг. 6 и 7. Тем не менее, в общем случае модель 302 STT способна обрабатывать устную естественную речь, например, речевой фрагмент 235 пользователя 230, с целью распознавания в нем отдельных слов и таким образом формировать текстовое представление 255 речевого фрагмента, например, текстовую строку, такую как «Hello, it’s John Smith, I want to make an appointment with my family doctor» («Здравствуйте, это Джон Смит, я хочу записаться на прием к своему семейному врачу») или «Hi, I’d like to order a pizza» («Привет, я хотел бы заказать пиццу») и т.п.[086] To generate a text representation 255 of a speech fragment from an audio representation 245 of a speech fragment, the server 250 may contain (or otherwise access) an STT model 302 . The architecture and configuration of STT model 302 for speech recognition are described in more detail below with reference to FIG. 6 and 7. However, in general, the STT model 302 is capable of processing spoken natural speech, such as a speech fragment 235 of a user 230, to recognize individual words therein and thereby generate a textual representation 255 of the speech fragment, such as a text string, such as “Hello, it's John Smith, I want to make an appointment with my family doctor” or “Hi, I'd like to order a pizza" (“Hello, I would like to order pizza”), etc.

[087] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии, сформировав текстовое представление 255 речевого фрагмента, сервер 250 может отправлять его второму серверу 260 для дальнейшей обработки естественной речи в текстовом представлении 255 речевого фрагмента.[087] In some non-limiting embodiments of the present technology, having generated a textual speech fragment representation 255, the server 250 may send it to a second server 260 for further processing of natural speech into a textual speech fragment representation 255.

[088] С этой целью, согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, второй сервер 260 может содержать модель 304 NLP (или осуществлять доступ к ней иным образом), которая может (1) понимать язык в текстовом представлении 255 речевого фрагмента, т.е. определять контекстные и грамматические взаимосвязи между словами в нем, и (2) формировать на основе текстового представления 255 речевого фрагмента формируемую компьютером текстовую строку 370, представляющую собой текстовое представление соответствующего формируемого компьютером речевого фрагмента 270, который должен выдаваться пользователю 230. Архитектура и конфигурация модели 304 NLP описаны ниже.[088] To this end, according to some non-limiting embodiments of the present technology, the second server 260 may contain (or otherwise access) an NLP model 304 that can (1) understand the language in the textual speech fragment representation 255, those. determine the contextual and grammatical relationships between words therein, and (2) generate, based on the textual representation 255 of a speech fragment, a computer-generated text string 370, which is a textual representation of the corresponding computer-generated speech fragment 270, to be presented to the user 230. Architecture and configuration of the model 304 NLPs are described below.

[089] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии с целью формирования соответствующего формируемого компьютером речевого фрагмента 270 для пользователя 230 приложение 265 виртуального помощника может инициировать передачу формируемой компьютером текстовой строки 370 модели 306 TTS, которая может преобразовывать формируемую компьютером текстовую строку 370 в элемент речи на естественном языке и далее передавать его данные электронному устройству 210 для воспроизведения пользователю 230. Архитектура и конфигурация модели 306 TTS описаны ниже.[089] In some non-limiting embodiments of the present technology, in order to generate a corresponding computer-generated speech fragment 270 for the user 230, the virtual assistant application 265 may initiate transmission of a computer-generated text string 370 to a TTS model 306, which may convert the computer-generated text string 370 to natural language speech element and then transmit its data to electronic device 210 for playback to user 230. The architecture and configuration of the TTS model 306 is described below.

[090] Должно быть понятно, что, несмотря на то, что в представленных на фиг. 3 вариантах осуществления изобретения модель 304 NLP и модель 306 TTS размещены на втором сервере 260, в других не имеющих ограничительного характера вариантах осуществления настоящей технологии каждую из этих моделей может содержать и, следовательно, обучать и использовать сервер 250. Иными словами, сервер 250 и второй сервер 260 могут быть реализованы в виде одного сервера. В других не имеющих ограничительного характера вариантах осуществления настоящей технологии модель 304 NLP и модель 306 TTS могут быть размещены на отдельных сторонних серверах (не показаны), подключенных к сети 240 связи.[090] It should be clear that, although in FIGS. In 3 embodiments of the invention, the NLP model 304 and the TTS model 306 are hosted on the second server 260; in other non-limiting embodiments of the present technology, each of these models may contain and therefore train and use the server 250. In other words, the server 250 and the second server 260 may be implemented as a single server. In other non-limiting embodiments of the present technology, the NLP model 304 and the TTS model 306 may be hosted on separate third-party servers (not shown) connected to the communications network 240.

Сеть связиCommunication network

[091] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии сеть 240 связи представляет собой сеть Интернет. В альтернативных не имеющих ограничительного характера вариантах осуществления настоящей технологии сеть 240 связи может быть реализована в виде любой подходящей локальной сети (LAN, Local Area Network), глобальной сети (WAN, Wide Area Network), частной сети связи и т.п. Очевидно, что варианты осуществления сети связи приведены лишь в иллюстративных целях. Реализация соответствующих линий связи (отдельно не обозначены) между сервером 250, вторым сервером 260 и электронным устройством 210 с одной стороны и сетью 240 связи с другой стороны зависит, среди прочего, от реализации сервера 250, второго сервера 260 и электронного устройства 210. Лишь в качестве примера, не имеющего ограничительного характера, в тех вариантах осуществления настоящей технологии, где электронное устройство 210 реализовано в виде устройства беспроводной связи, такого как смартфон, линия связи может быть реализована в виде беспроводной линии связи. Примеры беспроводных линий связи включают в себя канал сети связи 3G, канал сети связи 4G и т.д. В сети 240 связи также может использоваться беспроводное соединение с сервером 250 и со вторым сервером 260.[091] In some non-limiting embodiments of the present technology, communications network 240 is the Internet. In alternative, non-limiting embodiments of the present technology, communications network 240 may be implemented as any suitable Local Area Network, WAN, private communications network, or the like. Obviously, the communication network embodiments are provided for illustrative purposes only. The implementation of the respective communication lines (not specifically designated) between the server 250, the second server 260 and the electronic device 210 on the one hand and the communication network 240 on the other hand depends, among other things, on the implementation of the server 250, the second server 260 and the electronic device 210. Only in As a non-limiting example, in those embodiments of the present technology where the electronic device 210 is implemented as a wireless communication device, such as a smartphone, the communication link may be implemented as a wireless communication link. Examples of wireless communication links include a 3G network channel, a 4G network channel, etc. The communications network 240 may also utilize a wireless connection to the server 250 and to the second server 260.

Архитектура модели машинного обученияMachine learning model architecture

[092] На фиг. 4 представлена архитектура 400 модели машинного обучения, пригодная для использования в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии. Архитектура 400 модели машинного обучения основана на архитектуре модели нейронной сети на основе трансформера, как описано, например, в работе Vaswani et al. «Attention Is All You Need», Proceedings of 31st Conference on Neural Information Processing Systems (NIPS, 2017), содержание которой полностью включено в настоящий документ посредством ссылки.[092] In FIG. 4 illustrates a machine learning model architecture 400 suitable for use in certain non-limiting embodiments of the present technology. The machine learning model architecture 400 is based on a transformer-based neural network model architecture, as described, for example, in Vaswani et al. “Attention Is All You Need,” Proceedings of the 31st Conference on Neural Information Processing Systems (NIPS, 2017), the contents of which are incorporated herein by reference in their entirety.

[093] Таким образом, архитектура 400 модели машинного обучения может содержать стек 402 слоев кодера и стек 403 слоев декодера, которые способны обрабатывать входные данные 412 и целевые данные 417 архитектуры 400 модели машинного обучения, соответственно.[093] Thus, the machine learning model architecture 400 may comprise an encoder layer stack 402 and a decoder layer stack 403 that are capable of processing input data 412 and target data 417 of the machine learning model architecture 400, respectively.

[094] Кроме того, блок 404 кодера стека 402 слоев кодера содержит слой 406 многоголового внимания (MHA, Multi-Head Attention) кодера и слой 408 сети NN прямого распространения кодера. Слой 406 MHA кодера содержит зависимости между частями предоставленных ему входных данных 412. Например, если входные данные 412 содержат текстовые данные, такие как текстовое предложение, слой 406 MHA кодера может содержать зависимости между словами предложения. В другом примере, где входные данные 412 стека 402 слоев кодера содержат аудиосигнал, например, представляющий фрагмент человеческой речи (такой как речевой фрагмент 235 пользователя, описанный выше), слой 406 MHA кодера может содержать зависимости между конкретными звуками и/или акустическими признаками фрагмента человеческой речи. Такие зависимости могут использоваться слоем 406 MHA кодера для определения контекстной информации части входных данных 412 стека 402 слоев кодера (например, представляющей слово из предложения или акустический признак речевого фрагмента 235 пользователя), связанной с другой частью входных данных 412.[094] In addition, the encoder block 404 of the encoder layer stack 402 includes a multi-head attention (MHA) encoder layer 406 and an encoder feedforward NN network layer 408. MHA encoder layer 406 contains dependencies between parts of the input data 412 provided to it. For example, if input data 412 contains text data, such as a text sentence, MHA encoder layer 406 may contain dependencies between words of the sentence. In another example, where the input data 412 of the encoder layer stack 402 contains an audio signal, for example, representing a fragment of human speech (such as the user speech fragment 235 described above), the MHA encoder layer 406 may contain dependencies between specific sounds and/or acoustic features of the human speech fragment. speech. Such dependencies may be used by the MHA encoder layer 406 to determine the context information of a portion of the input data 412 of the encoder layer stack 402 (e.g., representing a word from a sentence or an acoustic feature of a user's speech fragment 235) associated with another portion of the input data 412.

[095] Кроме того, слой 408 сети NN прямого распространения способен преобразовывать его входные данные из слоя 406 MHA кодера в формат, принимаемый одним или несколькими следующими слоями архитектуры 400 модели машинного обучения, такими как слой 409 MHA кодера-декодера (описано ниже). Слой 408 сети NN прямого распространения кодера обычно не содержит зависимости слоя 406 MHA кодера, поэтому входные данные слоя 408 сети NN прямого распространения кодера могут обрабатываться параллельно.[095] In addition, the feedforward NN layer 408 is capable of transforming its input data from the MHA encoder layer 406 into a format accepted by one or more subsequent layers of the machine learning model architecture 400, such as the MHA encoder-decoder layer 409 (described below). The encoder forward propagation NN layer 408 typically does not contain the dependency of the encoder MHA layer 406, so the input data of the encoder forward propagation NN layer 408 can be processed in parallel.

[096] Кроме того, входные данные 412 стека 402 слоев кодера могут быть представлены множеством 414 входных векторов, формируемых алгоритмом 410 векторизации входных данных. В общем случае алгоритм 410 векторизации входных данных способен формировать векторные представления фиксированной размерности входных данных 412 в соответствующем пространстве векторных представлений. Иными словами, если входные данные 412 содержат данные, указывающие на речевой фрагмент 235 пользователя, такие как звуковое представление 245 речевого фрагмента, то алгоритм 410 векторизации входных данных может формировать множество 414 входных векторов, в котором координаты векторов, представляющих схожие акустические признаки звукового представления 245 речевого фрагмента (например, представляющих части со схожим звучанием из речевого фрагмента 235 пользователя), располагаются ближе друг к другу в соответствующем пространстве векторных представлений.[096] In addition, the input data 412 of the encoder layer stack 402 may be represented by a plurality of 414 input vectors generated by the input data vectorization algorithm 410 . In general, the input data vectorization algorithm 410 is capable of generating fixed-dimensional vector representations of the input data 412 in a corresponding vector representation space. In other words, if the input data 412 contains data indicative of a user's speech fragment 235, such as an audio representation 245 of the speech fragment, then the input data vectorization algorithm 410 may generate a set of input vectors 414 in which the coordinates of vectors representing similar acoustic features of the audio representation 245 speech fragments (eg, representing similar-sounding parts from the user's speech fragment 235) are located closer to each other in the corresponding vector representation space.

[097] В общем случае реализация алгоритма 410 векторизации входных данных зависит от формата предоставляемых ему входных данных 412. Если входные данные 412 содержат фрагменты человеческой речи, как в представленном выше примере, то алгоритм 410 векторизации входных данных может быть реализован в виде алгоритма векторизации звука, включая, среди прочего, алгоритм векторизации звука вида кодировщика Seq2Seq (Sequence-to-Sequence Autoencoder), алгоритм векторизации звука вида «сверточная векторная регрессия», алгоритм векторизации звука вида «основанная на буквах n-грамма», алгоритм векторизации звука на основе модели LSTM (Long Short-Term Memory) и т.п.[097] In general, the implementation of the input data vectoring algorithm 410 depends on the format of the input data 412 provided to it. If the input data 412 contains fragments of human speech, as in the example presented above, then the input data vectoring algorithm 410 may be implemented as an audio vectorizing algorithm , including but not limited to Seq2Seq (Sequence-to-Sequence Autoencoder) audio vectorization algorithm, Convolutional Vector Regression audio vectorization algorithm, Letter-based n-gram audio vectorization algorithm, Model-based audio vectorization algorithm LSTM (Long Short-Term Memory), etc.

[098] Вектор из множества 414 векторов может содержать числовые значения, например, 468 значений с плавающей запятой, представляющие соответствующую часть входных данных 412, такую как слово, часть речевого фрагмента 235 пользователя и т.п.[098] A vector of a set of vectors 414 may contain numeric values, such as 468 floating point values, representing a corresponding portion of the input data 412, such as a word, a portion of a user's speech 235, or the like.

[099] Формирование множества 414 входных векторов может также включать в себя применение позиционного алгоритма векторизации (не показан), способного регистрировать позиционные данные в частях входных данных 412. Например, если входные данные 412 содержат текстовое предложение, то позиционный алгоритм векторизации может формировать вектор, указывающий на позиционные данные слов в этом текстовом предложении. В другом примере, где входные данные 412 представляют речевой фрагмент 235 пользователя, позиционный алгоритм векторизации может регистрировать позиционные данные акустических признаков, связанных с этим фрагментом. Иными словами, позиционный алгоритм векторизации может формировать вектор, содержащий контекстную информацию из входных данных 412, который может быть добавлен к множеству 414 входных векторов. На реализацию позиционного алгоритма векторизации не накладывается каких-либо ограничений. Например, он (в числе прочего) может содержать позиционный алгоритм синусоидальной векторизации, позиционный алгоритм векторизации с наложением кадров и позиционный алгоритм сверточной векторизации.[099] Generating the plurality of input vectors 414 may also include the use of a positional vectorization algorithm (not shown) capable of capturing positional data in portions of the input data 412. For example, if the input data 412 contains a text sentence, then the positional vectorization algorithm may generate a vector indicating the positional data of words in this text sentence. In another example, where input data 412 represents a speech fragment 235 of a user, a positional vectorization algorithm may capture positional data of acoustic features associated with that fragment. In other words, the position vectorization algorithm may generate a vector containing context information from the input data 412, which may be added to the plurality of input vectors 414. There are no restrictions imposed on the implementation of the positional vectorization algorithm. For example, it may (among other things) comprise a positional sine vectorization algorithm, a positional frame overlay vectorization algorithm, and a positional convolutional vectorization algorithm.

[0100] Следует отметить, что стек 402 слоев кодера может содержать несколько блоков кодера, например, 6 или 12, реализованных подобно блоку 404 кодера.[0100] It should be noted that the encoder layer stack 402 may contain multiple encoder blocks, such as 6 or 12, implemented similar to encoder block 404.

[0101] Блок 405 декодера стека 403 слоев декодера архитектуры 400 модели машинного обучения содержит (а) слой 407 MHA декодера и (б) слой 411 сети NN прямого распространения декодера, которые обычно могут быть реализованы подобно слою 406 MHA кодера и слою 408 сети NN прямого распространения кодера, соответственно. Тем не менее, архитектура блока 405 декодера отличается от архитектуры блока 404 кодера тем, что блок 405 декодера дополнительно содержит слой 409 MHA кодера-декодера. Слой 409 MHA кодера-декодера способен (а) получать входные векторы от стека 402 слоев кодера и от слоя 407 MHA декодера и, следовательно, (б) определять в ходе обучения, как описано ниже, зависимости между входными данными 412 и целевыми данными 417 (такими, как текстовые данные) архитектуры 400 модели машинного обучения, введенным в стек 403 слоев декодера. Иными словами, выходные данные слоя 409 MHA кодера-декодера представляют собой векторы внимания, содержащие данные, указывающие на взаимосвязи между соответствующими частями входных данных 412 и целевых данных 417.[0101] The decoder block 405 of the decoder layer stack 403 of the machine learning model architecture 400 includes (a) an MHA decoder layer 407 and (b) a decoder forward propagation NN network layer 411, which can typically be implemented like an MHA encoder layer 406 and an NN network layer 408 direct propagation encoder, respectively. However, the architecture of the decoder block 405 differs from the architecture of the encoder block 404 in that the decoder block 405 further includes an encoder-decoder MHA layer 409. The encoder-decoder MHA layer 409 is capable of (a) receiving input vectors from the encoder layer stack 402 and from the decoder MHA layer 407 and therefore (b) learning, as described below, the dependencies between the input data 412 and the target data 417 ( such as text data) of the machine learning model architecture 400 input into the decoder layer stack 403. That is, the outputs of the encoder-decoder MHA layer 409 are attention vectors containing data indicative of relationships between corresponding portions of the input data 412 and the target data 417.

[0102] Как и в случае входных данных 412, с целью подачи целевых данных 417 в блок 405 декодера алгоритм 415 векторизации целевых данных может применяться в отношении целевых данных 417 для формирования множества 419 целевых векторов, содержащих числовые представления соответствующих частей целевых данных 417. Подобно алгоритму векторизации входных данных, алгоритм 415 векторизации целевых данных может формировать отображения целевых данных 417 в соответствующее пространство векторных представлений. Например, если целевые данные 417 содержат текстовые данные, такие как текстовое предложение, алгоритм 415 векторизации целевых данных может формировать множество 419 целевых векторов, в котором координаты векторов, представляющих слова текстового предложения со схожим значением, располагаются ближе друг к другу в соответствующем пространстве векторных представлений. Таким образом, алгоритм 415 векторизации целевых данных может быть реализован в виде алгоритма векторизации текста, включая, среди прочего, алгоритм векторизации текста вида Word2Vec (Word to Vector), алгоритм векторизации текста вида GloVe (Global Vectors for Word Representation) и т.п.[0102] As with input data 412, for the purpose of supplying target data 417 to decoder block 405, a target data vectorization algorithm 415 may be applied to target data 417 to generate a plurality of target vectors 419 containing numeric representations of corresponding portions of target data 417. Similarly input data vectorization algorithm, the target data vectorization algorithm 415 may form mappings of the target data 417 into a corresponding vector representation space. For example, if the target data 417 contains text data, such as a text sentence, the target data vectorization algorithm 415 may generate a set of target vectors 419 in which the coordinates of vectors representing words of a text sentence with similar meaning are located closer to each other in the corresponding vector representation space . Thus, the target data vectorization algorithm 415 may be implemented as a text vectorization algorithm, including, but not limited to, a Word2Vec (Word to Vector) text vectorization algorithm, a GloVe (Global Vectors for Word Representation) text vectorization algorithm, and the like.

[0103] Предполагается, что алгоритм 415 векторизации целевых данных может быть реализован подобно алгоритму 410 векторизации входных данных. Кроме того, позиционный алгоритм может применяться в отношении множества 419 целевых векторов для фиксации позиционных данных из частей целевых данных 417, как описано выше применительно к множеству 414 входных векторов.[0103] It is contemplated that the target data vectorization algorithm 415 may be implemented similar to the input data vectorization algorithm 410 . Additionally, a positional algorithm may be applied to the plurality of target vectors 419 to capture positional data from portions of the target data 417, as described above with respect to the plurality of input vectors 414.

[0104] Как описано ниже, архитектура 400 модели машинного обучения может получать входные данные 412 и целевые данные 417 из цифрового объекта, например, такого как обучающий цифровой объект 640 STT, как описано со ссылкой на фиг. 6.[0104] As described below, machine learning model architecture 400 may obtain input data 412 and target data 417 from a digital object, such as, for example, STT training digital object 640, as described with reference to FIG. 6.

[0105] Следует отметить, что стек 403 слоев декодера может содержать несколько блоков декодера, например, 6 или 12, реализованных подобно блоку 405 декодера. Предполагается, что после обучения архитектуры 400 модели машинного обучения все блоки стека 402 слоев кодера и стека 403 слоев декодера имеют различные веса, используемые при формировании выходных данных 425. Для корректировки весов в ходе обучения в отношении архитектуры 400 модели машинного обучения может применяться алгоритм обратного распространения и могут определяться и минимизироваться различия между входными данными 415 и выходными данными 425. Такие различия могут выражаться функцией потерь, такой как функция потерь кросс-энтропии.[0105] It should be noted that the decoder layer stack 403 may contain multiple decoder blocks, such as 6 or 12, implemented similar to the decoder block 405. Once the machine learning model architecture 400 is trained, all blocks of the encoder layer stack 402 and decoder layer stack 403 are assumed to have different weights used in generating the output data 425. A backpropagation algorithm may be used to adjust the weights during training against the machine learning model architecture 400. and differences between input data 415 and output data 425 can be determined and minimized. Such differences can be expressed by a loss function, such as a cross-entropy loss function.

[0106] Должно быть понятно, что в не имеющих ограничительного характера вариантах осуществления настоящей технологии также возможны другие варианты реализации функции потерь, например, функция потерь среднеквадратичной ошибки, функция потерь по Губеру, кусочно-линейная функция потерь и т.д.[0106] It should be understood that in non-limiting embodiments of the present technology, other embodiments of the loss function are also possible, such as the root mean square error loss function, the Huber loss function, the piecewise linear loss function, etc.

[0107] Выходные данные 425 архитектуры 400 модели машинного обучения могут содержать выходной вектор, соответствующий вектору из множества 414 входных векторов. Например, как описано ниже, в тех вариантах осуществления изобретения, где входные данные 412 архитектуры 400 модели машинного обучения содержат звуковое представление 245 речевого фрагмента для речевого фрагмента 235 пользователя, выходной вектор может содержать вероятности, указывающие на соответствующую часть текстового представления 255 речевого фрагмента.[0107] The output 425 of the machine learning model architecture 400 may include an output vector corresponding to a vector from a plurality of 414 input vectors. For example, as described below, in those embodiments of the invention where the input data 412 of the machine learning model architecture 400 includes an audio speech fragment representation 245 for a user's speech fragment 235, the output vector may contain probabilities indicating the corresponding portion of the text speech fragment representation 255.

[0108] Должно быть понятно, что архитектура 400 модели машинного обучения, описанная со ссылкой на фиг. 4, упрощена для лучшего понимания и что фактический вариант реализации архитектуры 400 модели машинного обучения может содержать дополнительные слои и/или блоки, например, как описано в вышеупомянутой работе Vaswani et al. В частности, в некоторых вариантах реализации архитектуры 400 модели машинного обучения каждый блок 404 кодера и каждый блок 405 декодера может также содержать слой операций нормализации. Кроме того, формирование выходных данных 425 может включать в себя применение функции нормализации softmax на выходе стека 403 слоев декодера и т.д. Специалистам в данной области техники должно быть понятно, что эти операции широко используются в нейронных сетях и моделях глубокого обучения, таких как архитектура 400 модели машинного обучения.[0108] It should be understood that the machine learning model architecture 400 described with reference to FIG. 4 is simplified for better understanding and that the actual implementation of the machine learning model architecture 400 may contain additional layers and/or blocks, for example, as described in the aforementioned work of Vaswani et al. In particular, in some embodiments of the machine learning model architecture 400, each encoder block 404 and each decoder block 405 may also include a layer of normalization operations. Additionally, generating output data 425 may include applying a softmax normalization function to the output of decoder layer stack 403, etc. Those skilled in the art will appreciate that these operations are widely used in neural networks and deep learning models, such as machine learning model architecture 400.

Модель NLPNLP model

[0109] В контексте настоящего описания модель NLP, такая как описанная ниже модель 304 NLP, представляет собой модель машинного обучения, обученную чтению, пониманию и формированию фрагментов естественной речи. Иными словами, можно сказать, что модель 304 NLP может выполнять два различных процесса: (а) процесс понимания естественной речи (NLU, Natural Language Understanding), например, для понимания текстового представления 255 речевого фрагмента, сформированного моделью 302 STT, преобразующий текстовое представление 255 речевого фрагмента в структурированные данные, и (б) процесс формирования естественной речи (NLG, Natural Language Generation) для формирования на основе структурированных данных формируемой компьютером текстовой строки 370.[0109] As used herein, an NLP model, such as the NLP model 304 described below, is a machine learning model trained to read, understand, and generate snippets of natural speech. In other words, it can be said that the NLP model 304 can perform two different processes: (a) a natural language understanding (NLU) process, for example, to understand the text representation 255 of a speech fragment generated by the STT model 302, transforming the text representation 255 speech fragment into structured data, and (b) a natural language generation (NLG) process for generating a computer-generated text string 370 from the structured data.

[0110] Таким образом, формируемая компьютером текстовая строка 370 может, например, указывать на следующую строку диалога приложения виртуального помощника, соответствующую речевому фрагменту 235 пользователя. В частности, в случае речевого фрагмента 235 пользователя «Hello, it’s John Smith, I want to make an appointment with my family doctor» («Здравствуйте, это Джон Смит, я хочу записаться на прием к своему семейному врачу») формируемая компьютером текстовая строка 370 может указывать на следующую фразу: «Sure! Can I have your medical insurance card number?» («Конечно! Могу я узнать номер Вашей карты медицинского страхования?»).[0110] Thus, the computer-generated text string 370 may, for example, point to the next line of dialogue of the virtual assistant application corresponding to the user's speech fragment 235. In particular, in the case of speech fragment 235 of the user “Hello, it's John Smith, I want to make an appointment with my family doctor” (“Hello, this is John Smith, I want to make an appointment with my family doctor”) a computer-generated text string 370 may indicate the following phrase: “Sure! Can I have your medical insurance card number?” (“Of course! May I have your health insurance card number?”).

[0111] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии модель 304 NLP может быть реализована на основе сети NN, такой как сеть NN вида LSTM или рекуррентная сеть NN. Тем не менее, согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, модель 304 NLP может быть реализована в виде модели NN на основе трансформера. При этом модель 304 NLP может содержать некоторые или все элементы архитектуры 400 модели машинного обучения, описанной выше.[0111] In some non-limiting embodiments of the present technology, the NLP model 304 may be implemented based on an NN network, such as an LSTM NN or a recurrent NN. However, according to some non-limiting embodiments of the present technology, the NLP model 304 may be implemented as a transformer-based NN model. However, the NLP model 304 may contain some or all of the elements of the machine learning model architecture 400 described above.

[0112] В частности, в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии модель 304 NLP также может содержать стек 402 слоев кодера и стек 403 слоев декодера, включая несколько блоков кодера и декодера. Тем не менее, соответствующие количества таких блоков в стеке 402 слоев кодера и в стеке 403 слоев декодера могут отличаться от их количества в архитектуре 400 модели машинного обучения.[0112] In particular, in some non-limiting embodiments of the present technology, NLP model 304 may also include an encoder layer stack 402 and a decoder layer stack 403, including multiple encoder and decoder blocks. However, the respective numbers of such blocks in the encoder layer stack 402 and in the decoder layer stack 403 may differ from their number in the machine learning model architecture 400.

[0113] Например, в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии модель 304 NLP может содержать один блок кодера и тринадцать блоков декодера, реализованных подобно блоку 404 кодера и блоку 405 декодера, соответственно, как описано выше. В других не имеющих ограничительного характера вариантах осуществления настоящей технологии модель 304 NLP может не содержать блоков кодера и содержать несколько блоков декодера, например, 6, 12 или 96 (в этом случае модель 304 может называться предварительно обученным генеративным трансформером (GPT, Generative Pre-trained Transformer)). При этом в других не имеющих ограничительного характера вариантах осуществления настоящей технологии модель 304 NLP может содержать только блоки кодера, например, 12, 24 или 36, и не содержать блоков декодера (в этом случае модель 304 может называться «Представлениями двунаправленного кодера из трансформеров» (BERT, Bidirectional Encoder Representations from Transformers)).[0113] For example, in some non-limiting embodiments of the present technology, NLP model 304 may include one encoder block and thirteen decoder blocks, implemented like encoder block 404 and decoder block 405, respectively, as described above. In other non-limiting embodiments of the present technology, the NLP model 304 may contain no encoder blocks and contain several decoder blocks, for example, 6, 12, or 96 (in which case the model 304 may be referred to as a Generative Pre-trained Transformer (GPT) Transformer)). However, in other non-limiting embodiments of the present technology, the NLP model 304 may contain only encoder blocks, such as 12, 24, or 36, and no decoder blocks (in which case, the NLP model 304 may be referred to as "Bidirectional Encoder Views from Transformers" ( BERT, Bidirectional Encoder Representations from Transformers)).

[0114] Также возможны и другие конфигурации стека 402 слоев кодера и стека 403 слоев декодера для реализации модели 304 NLP без выхода за границы настоящей технологии.[0114] Other configurations of encoder layer stack 402 and decoder layer stack 403 are also possible to implement NLP model 304 without going beyond the boundaries of the present technology.

[0115] Кроме того, для обучения модели 304 NLP формированию формируемых компьютером текстовых строк в ответ на текстовые представления речевых фрагментов, формируемые моделью 302 STT, например, формируемой компьютером текстовой строки 370 для текстового представления 255 речевого фрагмента для речевого фрагмента 235 пользователя, второй сервер 260 может подавать в модель 304 NLP обучающий набор данных NLP, содержащий множество обучающих цифровых объектов NLP.[0115] In addition, to train the NLP model 304 to generate computer-generated text strings in response to text representations of speech fragments generated by STT model 302, for example, computer-generated text string 370 for text speech fragment representation 255 for user speech fragment 235, a second server 260 may feed the NLP model 304 an NLP training dataset containing a plurality of NLP training digital objects.

[0116] Согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, обучающий цифровой объект NLP из множества обучающих цифровых объектов NLP может содержать (а) первую формируемую пользователем текстовую строку и (б) вторую формируемую пользователем текстовую строку, соответствующую первой формируемой пользователем строке. Например, с этой целью обучающий цифровой объект NLP может быть получен в сети Интернет из общедоступных диалогов в социальных медиа, таких как комментарии или сообщения на веб-сайте социальной сети либо обсуждения на веб-сайте форума. В другом примере первая формируемая пользователем текстовая строка и вторая формируемая пользователем текстовая строка могут быть сформированы на основе диалогов между различными сервисами технической поддержки, например, между сервисами поставщика услуг (описано выше) и их клиентами.[0116] According to some non-limiting embodiments of the present technology, an NLP training digital object of a plurality of NLP training digital objects may comprise (a) a first user-generated text string and (b) a second user-generated text string corresponding to the first user-generated text string. For example, for this purpose, an NLP training digital object can be obtained on the Internet from public conversations on social media, such as comments or messages on a social networking website or discussions on a forum website. In another example, the first user-generated text string and the second user-generated text string may be generated based on conversations between various technical support services, for example, between service provider services (described above) and their clients.

[0117] Кроме того, согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, второй сервер 260 может подавать (а) первую формируемую пользователем текстовую строку в стек 402 слоев кодера и (б) вторую формируемую пользователем текстовую строку в стек 403 слоев декодера, как описано выше. Таким образом, второй сервер 260 может подавать множество обучающих цифровых объектов NLP, содержащее, например, тысячи или сотни тысяч схожих обучающих цифровых объектов NLP, в модель 304 NLP и обучать таким образом модель 304 NLP формированию выходных данных 425, содержащих векторы распределения вероятностей для слов формируемой компьютером текстовой строки этапа использования, являющейся текстовым представлением речевого фрагмента пользователя этапа использования.[0117] Additionally, according to some non-limiting embodiments of the present technology, the second server 260 may provide (a) a first user-generated text string to the encoder layer stack 402 and (b) a second user-generated text string to the decoder layer stack 403, as described above. Thus, the second server 260 may feed a plurality of NLP training digital objects, containing, for example, thousands or hundreds of thousands of similar NLP training digital objects, to the NLP model 304 and thereby train the NLP model 304 to generate output 425 containing probability distribution vectors for the words. a computer-generated text string of the use stage, which is a text representation of the speech fragment of the user of the use stage.

[0118] Кроме того, может быть определена функция потерь, представляющая различия между входными данными 412 и выходными данными 425, и путем минимизации такой функции потерь второй сервер 260 может определять веса для узлов модели 304 NLP с использованием алгоритма обратного распространения. Дополнительная информация об обучении модели 304 NLP содержится, например, в статье «Towards a Human-like Open-Domain Chatbot» (Adiwardana et al., Google Research), содержание которой полностью включено в настоящий документ посредством ссылки.[0118] In addition, a loss function representing the differences between input data 412 and output data 425 may be determined, and by minimizing such a loss function, the second server 260 may determine weights for the nodes of the NLP model 304 using a backpropagation algorithm. Additional information on training an NLP model 304 can be found, for example, in the article “Towards a Human-like Open-Domain Chatbot” (Adiwardana et al., Google Research), the contents of which are incorporated herein by reference in their entirety.

[0119] В тех вариантах осуществления изобретения, где модель 304 NLP содержит только стек 402 слоев кодера или только стек 403 слоев декодера, модель 304 NLP сначала может быть предварительно обучена на основе более общего обучающего набора данных, а затем точно настроена на основе обучающего набора данных NLP, описанного выше, как подробно описано, например, в статье «Language Models are Few-Shot Learners» (Brown et al., OpenAI), содержание которой полностью включено в настоящий документ посредством ссылки.[0119] In those embodiments of the invention where the NLP model 304 contains only an encoder layer stack 402 or only a decoder layer stack 403, the NLP model 304 may first be pre-trained based on a more general training dataset and then fine-tuned based on the training set the NLP data described above, as described in detail, for example, in the article “Language Models are Few-Shot Learners” (Brown et al., OpenAI), the contents of which are incorporated herein by reference in their entirety.

[0120] Таким образом, второй сервер 260 может обучать модель 304 NLP формированию формируемой компьютером текстовой строки 370 в ответ на текстовое представление 255 речевого фрагмента для речевого фрагмента 235 пользователя.[0120] Thus, the second server 260 may train the NLP model 304 to generate a computer-generated text string 370 in response to the textual speech fragment representation 255 for the user's speech fragment 235.

Модель TTSModel TTS

[0121] Как описано выше со ссылкой на фиг. 3, после получения от модели 304 NLP формируемой компьютером текстовой строки 370 приложение 265 виртуального помощника может отправлять формируемую компьютером текстовую строку 370 модели 306 TTS для формирования формируемого компьютером аудиосигнала, указывающего на соответствующий формируемый компьютером речевой фрагмент 270 для речевого фрагмента 235 пользователя.[0121] As described above with reference to FIG. 3, upon receiving a computer-generated text string 370 from the NLP model 304, the virtual assistant application 265 may send the computer-generated text string 370 to the TTS model 306 to generate a computer-generated audio signal indicating a corresponding computer-generated speech fragment 270 for the user's speech fragment 235.

[0122] В общем случае в контексте данного документа модель 306 TTS представляет собой модель машинного обучения, способную преобразовывать элементы естественной речи в виде текста, например, в устную речь. На реализацию модели 306 TTS не накладывается каких-либо ограничений. В числе прочего, она может содержать модель TTS WaveNet, модель TTS Deep Voice, модель TTS Tacotron и т.п.[0122] In general, as used herein, TTS model 306 is a machine learning model capable of converting elements of natural speech as text, such as spoken language. There are no restrictions on the implementation of the 306 TTS. It may include, but is not limited to, a TTS WaveNet model, a TTS Deep Voice model, a TTS Tacotron model, etc.

[0123] Согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, модель 306 TTS может быть реализована в виде модели NN на основе трансформера и, таким образом, может содержать некоторые или все элементы архитектуры 400 модели машинного обучения, описанной выше со ссылкой на фиг. 4.[0123] According to some non-limiting embodiments of the present technology, the TTS model 306 may be implemented as a transformer-based NN model and thus may comprise some or all of the elements of the machine learning model architecture 400 described above with reference to FIG. . 4.

[0124] На фиг. 5 представлена схема модели 306 TTS на основе архитектуры 400 модели машинного обучения, представленной на фиг. 4, согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии. Таким образом, как описано ниже, входные данные 412 модели 306 TTS могут содержать текстовые строки, а целевые данные 417 могут содержать звуковые представления речевых фрагментов пользователя, соответствующие текстовым строкам входных данных 412.[0124] In FIG. 5 is a diagram of a TTS model 306 based on the machine learning model architecture 400 shown in FIG. 4, according to some non-limiting embodiments of the present technology. Thus, as described below, input data 412 of TTS model 306 may contain text strings, and target data 417 may contain audio representations of user speech fragments corresponding to text strings of input data 412.

[0125] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии модель 306 TTS может содержать дополнительные элементы для обработки входных данных 412 и целевых данных 417. В частности, для ввода входных данных 412 модель 306 TTS может содержать алгоритм 502 преобразования текста в фонемы, способный формировать фонетическое представление входной строки, такой как слова или предложения. Например, фонетическое представление слова может содержать соответствующую фонетическую транскрипцию согласно международному фонетическому алфавиту (IPA, International Phonetic Alphabet).[0125] In some non-limiting embodiments of the present technology, TTS model 306 may include additional elements for processing input data 412 and target data 417. In particular, for input data 412, TTS model 306 may include a text-to-phoneme conversion algorithm 502, capable of forming a phonetic representation of an input string such as words or sentences. For example, the phonetic representation of a word may contain a corresponding phonetic transcription according to the International Phonetic Alphabet (IPA).

[0126] Согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, для формирования множества 414 входных векторов, соответствующих векторным представлениям фонетического представления входной текстовой строки в соответствующем пространстве векторных представлений, как описано выше, модель 306 TTS содержит дополнительную сеть NN - предварительную сеть 504 кодера. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии предварительная сеть 504 кодера может быть реализована в виде сверточной сети NN (CNN, Convolutional NN), содержащей заранее заданное количество слоев, например, три.[0126] According to some non-limiting embodiments of the present technology, to generate a plurality of input vectors 414 corresponding to vector representations of the phonetic representation of the input text string in the corresponding vector representation space, as described above, TTS model 306 includes an additional NN network - pre-network 504 coder. In some non-limiting embodiments of the present technology, the pre-encoder network 504 may be implemented as a Convolutional NN (CNN) containing a predetermined number of layers, such as three.

[0127] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии звуковое представление речевого фрагмента пользователя, вводимое в модель 306 TTS в качестве части целевых данных 417, может быть сформировано подобно звуковому представлению 245 речевого фрагмента, как описано выше со ссылкой на фиг. 2. С этой целью в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии звуковое представление для модели 306 TTS может, например, содержать соответствующую мел-спектрограмму, связанную с речевым фрагментом пользователя.[0127] In some non-limiting embodiments of the present technology, the audio representation of a user's speech fragment input into the TTS model 306 as part of the target data 417 may be generated similar to the audio speech representation 245, as described above with reference to FIG. 2. To this end, in some non-limiting embodiments of the present technology, the audio representation for TTS model 306 may, for example, contain a corresponding chalk spectrogram associated with the user's speech fragment.

[0128] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии для получения звукового представления стеком 403 слоев декодера модель 306 TTS может дополнительно содержать еще одну дополнительную сеть NN, способную формировать множество 419 целевых векторов на основе звуковых представлений речевого фрагмента пользователя. В частности, эта сеть NN может содержать заранее заданное количество полносвязных слоев (например, два), каждый из которых содержит, в частности, 256 скрытых узлов с функцией активации вида ReLU.[0128] In some non-limiting embodiments of the present technology, to obtain an audio representation by the decoder layer stack 403, the TTS model 306 may further comprise yet another additional NN network capable of generating a plurality of target vectors 419 based on the audio representations of a user's speech segment. In particular, this NN network can contain a predetermined number of fully connected layers (for example, two), each of which contains, in particular, 256 hidden nodes with an activation function of the form ReLU.

[0129] Кроме того, согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, модель 306 TTS может быть обучена, например, вторым сервером 260, определению соответствий между фонемами слов или фраз из входных данных 412 и звуковыми представлениями речевых фрагментов пользователя из целевых данных 417. Таким образом, второй сервер 260 может обучать модель 306 TTS формированию формируемых компьютером звуковых сигналов, указывающих на формируемые компьютером речевые фрагменты, которые должны быть предоставлены в ответ на получение соответствующей текстовой строки, такой как формируемая компьютером текстовая строка 370.[0129] Additionally, according to some non-limiting embodiments of the present technology, TTS model 306 may be trained, for example, by second server 260, to determine correspondences between phonemes of words or phrases from input data 412 and audio representations of user speech fragments from target data 417. Thus, the second server 260 may train the TTS model 306 to generate computer-generated audio signals indicative of computer-generated speech fragments to be provided in response to receiving a corresponding text string, such as computer-generated text string 370.

[0130] С этой целью второй сервер 260 может обучать модель 306 TTS на основе обучающего набора данных TTS, содержащего множество обучающих цифровых объектов TTS. В частности, согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, обучающий цифровой объект TTS из множества обучающих цифровых объектов TTS может содержать (1) обучающую текстовую строку и (2) соответствующее обучающее звуковое представление, такое как мел-спектрограмма (описано выше), речевого фрагмента пользователя, сформированного обучающим пользователем, произносящим обучающую текстовую строку.[0130] To this end, the second server 260 may train a TTS model 306 based on a TTS training dataset containing a plurality of training TTS digital objects. In particular, according to some non-limiting embodiments of the present technology, a TTS training digital object of a plurality of TTS training digital objects may comprise (1) a training text string and (2) a corresponding training audio representation, such as a chalk spectrogram (described above) , a user speech fragment generated by a training user pronouncing a training text string.

[0131] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии обучающая текстовая строка может быть заранее подготовлена для произнесения обучающим пользователем с целью формирования связанного с ней соответствующего звукового представления. Например, может использоваться обучающая текстовая строка «Hello! You have reached the office of Doctor House. How can we help you today?» («Здравствуйте, Вы обратились в офис врача Хауса. Чем мы можем быть Вам полезны сегодня?»), и обучающий пользователь может произнести эту обучающую текстовую строку и записать свой речевой фрагмент с помощью электронного устройства, подобного электронному устройству 210, описанному выше. На основе записи речевого фрагмента пользователя второй сервер 260 может сформировать соответствующее обучающее звуковое представление, связанное с обучающей текстовой строкой.[0131] In some non-limiting embodiments of the present technology, a training text string may be prepared in advance to be spoken by a training user to form a corresponding audio representation associated with it. For example, the training text string “Hello! You have reached the office of Doctor House. How can we help you today?” (“Hello, you have reached Dr. House's office. How can we help you today?”) and the training user can speak this training text string and record his speech portion using an electronic device similar to the electronic device 210 described above. Based on the recording of the user's speech fragment, the second server 260 can generate a corresponding training audio representation associated with the training text string.

[0132] Тем не менее, в других не имеющих ограничительного характера вариантах осуществления настоящей технологии второй сервер 260 может получать (1) обучающий аудиосигнал TTS, например, представляющий заранее записанную речь относительно большой продолжительности, равной, например, 25 часам, и (2) соответствующее обучающее текстовое представление TTS этой заранее записанной речи, представленной обучающим аудиосигналом TTS. Кроме того, второй сервер 260 может (1) разделять обучающий аудиосигнал TTS на множество частей, например, равной длины, такой как 10 секунд, (2) формировать для части обучающего сигнала TTS соответствующее обучающее звуковое представление, (3) определять соответствующие части в обучающем текстовом представлении TTS заранее записанной речи, соответствующие множеству частей обучающего аудиосигнала TTS, и (4) формировать обучающий цифровой объект TTS, содержащий обучающую текстовую строку, соответствующую части обучающего текстового представления TTS заранее записанной речи, и соответствующее обучающее звуковое представление.[0132] However, in other non-limiting embodiments of the present technology, the second server 260 may receive (1) a TTS training audio signal, e.g., representing pre-recorded speech of relatively long duration, e.g., 25 hours, and (2) the corresponding TTS training text representation of that pre-recorded speech represented by the TTS training audio signal. In addition, the second server 260 may (1) divide the TTS training audio signal into multiple portions, for example, of equal length such as 10 seconds, (2) generate a corresponding training audio representation for a portion of the TTS training signal, (3) determine corresponding portions in the training a TTS text representation of the prerecorded speech corresponding to a plurality of portions of the TTS training audio signal, and (4) generating a TTS training digital object containing a training text string corresponding to a portion of the TTS training text representation of the prerecorded speech and a corresponding training audio representation.

[0133] Таким образом, сформировав (или получив иным образом) обучающий набор данных TTS, как описано выше, второй сервер 260 может обучать модель 306 TTS основанному на формируемой компьютером текстовой строке 370 формированию формируемого компьютером аудиосигнала, указывающего на формируемый компьютером речевой фрагмент 270. В частности, как описано выше, во-первых, второй сервер 260 может подавать обучающую текстовую строку с использованием алгоритма 502 преобразования текста в фонемы и предварительной сети 504 кодера, как описано выше, в стек 402 слоев кодера. Во-вторых, второй сервер 260 может подавать соответствующее обучающее звуковое представление, связанное с текстовой строкой, через предварительную сеть 505 декодера, как описано выше, в стек 403 слоев декодера. Таким образом, второй сервер 260 может вводить каждый объект из множества обучающих цифровых объектов TTS.[0133] Thus, having generated (or otherwise obtained) a TTS training data set as described above, the second server 260 can train the TTS model 306 to based on the computer-generated text string 370 to generate a computer-generated audio signal indicative of a computer-generated speech fragment 270. In particular, as described above, first, the second server 260 may supply a training text string using the text-to-phonemes algorithm 502 and the encoder pre-network 504 as described above to the encoder layer stack 402. Second, the second server 260 may provide the corresponding training audio representation associated with the text string via the decoder pre-network 505, as described above, to the decoder layer stack 403. Thus, the second server 260 may input each object of the plurality of TTS training digital objects.

[0134] Затем, как описано выше, с использованием алгоритма обратного распространения и минимизации функции потерь, указывающей на различия между входными данными 412 и выходными данными 425, второй сервер 260 может обучать модель 306 TTS формированию в ответ на текстовую строку этапа использования, такую как формируемая компьютером текстовая строка 370, выходных данных 425, содержащих векторы распределения вероятностей для частей формируемого компьютером аудиосигнала, соответствующего формируемой компьютером текстовой строке 370. Затем на основе соответствующего звукового представления этапа использования второй сервер 260 может формировать формируемый компьютером аудиосигнал, представляющий соответствующий формируемый компьютером речевой фрагмент 270 приложения 265 виртуального помощника для речевого фрагмента 235 пользователя.[0134] Then, as described above, using a backpropagation algorithm and minimizing a loss function indicating differences between input data 412 and output data 425, the second server 260 can train a TTS model 306 to generate in response to a use stage text string, such as computer-generated text string 370, output data 425 containing probability distribution vectors for portions of the computer-generated audio signal corresponding to the computer-generated text string 370. Then, based on the corresponding audio representation of the use step, the second server 260 can generate a computer-generated audio signal representing the corresponding computer-generated speech fragment 270 virtual assistant application 265 for the user's speech fragment 235.

[0135] Дополнительные сведения о реализации модели 306 TTS согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии приведены в статье «Close to Human Quality TTS with Transformer» (Li et al., University of Electronic Science and Technology of China), содержание которой полностью включено в настоящий документ посредством ссылки. Кроме того, дополнительные сведения о модели 306 TTS, которая может быть использована для реализации некоторых не имеющих ограничительного характера вариантов осуществления настоящей технологии, приведены в статье «FastSpeech 2: Fast and High-Quality End-to-End Text to Speech (Yi Ren et al., Zhejiang University, Microsoft Research Asia and Microsoft Azure Speech), содержание которой полностью включено в настоящий документ посредством ссылки. Дополнительные сведения о модели 306 TTS, которая может быть использована для реализации некоторых не имеющих ограничительного характера вариантов осуществления настоящей технологии, также приведены в статье «Fastpitch: parallel text-to-speech with pitch prediction» (Adrian Lancuck, NVIDIA Corporation), содержание которой полностью включено в настоящий документ посредством ссылки.[0135] Additional information regarding the implementation of the TTS model 306 according to some non-limiting embodiments of the present technology is provided in the article "Close to Human Quality TTS with Transformer" (Li et al., University of Electronic Science and Technology of China), the contents of which is incorporated herein by reference in its entirety. In addition, additional information about the Model 306 TTS, which can be used to implement some non-limiting embodiments of the present technology, is provided in the article “FastSpeech 2: Fast and High-Quality End-to-End Text to Speech (Yi Ren et al., Zhejiang University, Microsoft Research Asia and Microsoft Azure Speech), the contents of which are incorporated herein by reference in their entirety. Additional information about the Model 306 TTS, which can be used to implement some non-limiting embodiments of this technology, is also provided in the article "Fastpitch: parallel text-to-speech with pitch prediction" (Adrian Lancuck, NVIDIA Corporation), the contents of which is incorporated herein by reference in its entirety.

[0136] Таким образом, сетевая вычислительная среда 200 может формировать соответствующий формируемый компьютером речевой фрагмент 270 для передачи его электронному устройству 210 в ответ на получение речевого фрагмента 235 пользователя (см. фиг. 3).[0136] Thus, the network computing environment 200 can generate a corresponding computer-generated speech fragment 270 for transmission to the electronic device 210 in response to receiving the user speech fragment 235 (see FIG. 3).

[0137] При этом разработчики настоящей технологии установили, что качество и релевантность соответствующего формируемого компьютером речевого фрагмента 270 приложения 265 виртуального помощника могут быть повышены путем повышения точности формирования моделью 302 STT текстового представления 255 речевого фрагмента. Следует отметить, что второй сервер 260 использует выходные данные модели 302 STT при обработке, выполняемой моделью 304 NLP и моделью 306 TTS. В результате повышения качества выходных данных, формируемых моделью 302 STT, также возможно повышение эффективности других расположенных в нисходящем направлении элементов сетевой вычислительной среды 200, используемой приложением 265 виртуального помощника для формирования формируемых компьютером речевых фрагментов для пользователя 230.[0137] In doing so, the developers of the present technology have determined that the quality and relevance of the corresponding computer-generated speech fragment 270 of the virtual assistant application 265 can be improved by increasing the accuracy of the STT model 302's generation of the textual representation 255 of the speech fragment. It should be noted that the second server 260 uses the output of the STT model 302 in the processing performed by the NLP model 304 and the TTS model 306. By improving the quality of the output generated by the STT model 302, it is also possible to improve the efficiency of other downstream elements of the network computing environment 200 used by the virtual assistant application 265 to generate computer-generated speech snippets for the user 230.

[0138] В связи с этим разработчики установили, что модель 302 STT может точнее формировать текстовое представление 255 речевого фрагмента, если она способна учитывать предыдущую формируемую компьютером текстовую строку 360 модели 304 NLP в качестве контекста звукового представления 245 речевого фрагмента для речевого фрагмента 235 пользователя. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии предыдущая формируемая компьютером текстовая строка 360 может быть сформирована моделью 304 NLP для предыдущего соответствующего формируемого компьютером речевого фрагмента, сформированного моделью 306 TTS, как описано выше, в ответ на который пользователь 230 предоставил речевой фрагмент 235 пользователя.[0138] In this regard, the developers have determined that the STT model 302 can more accurately generate a textual speech fragment representation 255 if it is able to take into account the previous computer-generated text string 360 of the NLP model 304 as the context of the audio speech fragment representation 245 for the user's speech fragment 235. In some non-limiting embodiments of the present technology, a previous computer-generated text string 360 may be generated by an NLP model 304 for a previous corresponding computer-generated speech fragment generated by a TTS model 306, as described above, in response to which the user 230 provided a user speech fragment 235 .

[0139] Таким образом, разработчики реализовали описанные здесь способы и системы, позволяющие модели 302 TTS учитывать предыдущую формируемую компьютером текстовую строку 360 в качестве контекста для речевого фрагмента 235 пользователя с целью формирования соответствующего текстового представления 255 речевого фрагмента, далее используемого для формирования формируемого компьютером речевого фрагмента 270. В результате, благодаря настоящим способам и системам, возможно повышение точности модели 302 STT, например, путем устранения проблемы лексической неоднозначности при обработке звукового представления 245 речевого фрагмента для речевого фрагмента 235 пользователя.[0139] Thus, developers have implemented the methods and systems described herein to allow the TTS model 302 to consider a previous computer-generated text string 360 as context for a user's speech 235 to generate a corresponding text representation 255 of the speech that is then used to generate a computer-generated speech. fragment 270. As a result, with the present methods and systems, it is possible to improve the accuracy of the STT model 302, for example, by eliminating the problem of lexical ambiguity when processing the audio speech fragment representation 245 for the user's speech fragment 235.

[0140] Например, если в речевом фрагменте 235 пользователя пользователь 230 сообщает свою фамилию, например, «It’s Wordsworth» («Это Вордсворт»), то без контекстной информации модель 302 STT может сформировать текстовое представление 255 речевого фрагмента «It’s words worth» («Это стоит слов»), поскольку у нее отсутствует информация о том, что это фамилия, которая должна быть представлена в виде одного слова. При этом благодаря подаче в модель 302 STT в качестве данных обратной связи предыдущей формируемой компьютером текстовой строки 360, которая использовалась при формировании предыдущего соответствующего формируемого компьютером речевого фрагмента для пользователя 230, такой как «Can I have your last name, please?» («Могу я узнать Вашу фамилию?»), можно обеспечить надлежащий контекст для речевого фрагмента 235 пользователя, позволяющий модели 302 STT распознать известную фамилию «Wordsworth» («Вордсворт»). В другом примере модель 302 STT, которой не был предоставлен надлежащий контекст, может на основе речевого фрагмента 235 пользователя, содержащего указание на адрес пользователя 230, такого как «4245, Bellechasse» («4245, Бельшасс»), сформировать текстовое представление 255 речевого фрагмента «4245 belle chasse» («4245, красивая охота»), не распознав известный французский топоним «Bellechasse» («Бельшасс»), который в данном примере соответствует названию улицы.[0140] For example, if in user speech 235 the user 230 states his last name, such as "It's Wordsworth", then without contextual information the STT model 302 can generate a text representation 255 of the speech 255 "It's words worth" ( "It's worth a word") because she lacks the information that it is a surname, which should be represented as one word. By feeding STT model 302 as feedback data a previous computer-generated text string 360 that was used to generate a previous corresponding computer-generated speech fragment for user 230, such as “Can I have your last name, please?” (“May I know your last name?”), it is possible to provide the proper context for the user's speech fragment 235 to allow the 302 STT to recognize the famous surname “Wordsworth.” In another example, the STT model 302, which has not been provided with the proper context, may, based on a user's speech fragment 235 containing an indication of the user's address 230, such as "4245, Bellechasse" ("4245, Bellechasse"), generate a text representation 255 of the speech fragment "4245 belle chasse" ("4245, beautiful hunt"), without recognizing the famous French toponym "Bellechasse" ("Bellechasse"), which in this example corresponds to the name of the street.

[0141] Таким образом, благодаря описанным в данном документе способам и системам, возможно повышение точности распознавания речи моделью 302 STT, что, в свою очередь, позволяет формировать для пользователя 230 более релевантные речевые ответы на его речевые фрагменты, предоставляемые приложению 265 виртуального помощника, что в результате позволяет обеспечивать лучшее взаимодействие пользователя 230 с приложением 265 виртуального помощника.[0141] Thus, through the methods and systems described herein, it is possible to improve the speech recognition accuracy of the STT model 302, which in turn allows the user 230 to generate more relevant speech responses to his speech fragments provided to the virtual assistant application 265, resulting in a better user experience 230 with the virtual assistant application 265 .

[0142] Ниже со ссылкой на фиг. 6 и 7 описаны архитектура и конфигурация модели 302 STT согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии.[0142] Below with reference to FIG. 6 and 7 describe the architecture and configuration of the Model 302 STT in accordance with certain non-limiting embodiments of the present technology.

Модель STTModel STT

[0143] Как описано выше, согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, модель 302 STT может быть реализована в виде модели машинного обучения. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии модель машинного обучения содержит модель на основе сети NN. В качестве не имеющих ограничительного характера примеров моделей на основе сети NN, которые можно использовать для реализации настоящей технологии, можно привести модель на основе рекуррентной сети NN (RNN, Recurrent NN) или модель на основе сети NN вида LSTM.[0143] As described above, according to some non-limiting embodiments of the present technology, STT model 302 may be implemented as a machine learning model. In some non-limiting embodiments of the present technology, the machine learning model comprises an NN network-based model. Non-limiting examples of NN network-based models that can be used to implement this technology include a recurrent NN (RNN) model or an LSTM-based NN network model.

[0144] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии модель 302 STT может быть реализована в виде модели NN на основе трансформера. С этой целью модель 302 STT может содержать некоторые или все компоненты архитектуры 400 модели машинного обучения, описанной выше со ссылкой на фиг. 4.[0144] In some non-limiting embodiments of the present technology, the STT model 302 may be implemented as a transformer-based NN model. To this end, STT model 302 may comprise some or all of the components of the machine learning model architecture 400 described above with reference to FIG. 4.

[0145] При этом согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, модель 302 STT может содержать дополнительные компоненты. На фиг. 6 представлена схема модели 302 STT, реализованной согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии.[0145] However, according to some non-limiting embodiments of the present technology, STT model 302 may include additional components. In fig. 6 is a diagram of a STT model 302 implemented in accordance with certain non-limiting embodiments of the present technology.

[0146] Согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, модель 302 STT может содержать стек 603 слоев декодера STT, в котором архитектура блока 605 декодера STT отличается от архитектуры блока 405 декодера в архитектуре 400 модели машинного обучения. В частности, помимо компонентов блока 405 декодера, описанного выше, блок 605 декодера STT может содержать дополнительный слой 607 MHA для получения дополнительных входных данных 621. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии дополнительные входные данные 621 могут использоваться для предоставления дополнительного контекста для входных данных 412 и целевых данных 417, как более подробно описано ниже. Таким образом, в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии дополнительный слой 607 MHA может определять зависимости между соответствующими частями входных данных 412, целевых данных 417 и дополнительных входных данных 621.[0146] According to some non-limiting embodiments of the present technology, STT model 302 may include a stack of STT decoder layers 603, in which the architecture of STT decoder block 605 is different from the architecture of decoder block 405 in machine learning model architecture 400. Specifically, in addition to the components of the decoder block 405 described above, the STT decoder block 605 may include an additional MHA layer 607 to provide additional input data 621. In some non-limiting embodiments of the present technology, additional input data 621 may be used to provide additional context for input data 412 and target data 417, as described in more detail below. Thus, in some non-limiting embodiments of the present technology, additional MHA layer 607 may define dependencies between corresponding portions of input data 412, target data 417, and additional input data 621.

[0147] Предполагается, что для ввода дополнительных входных данных 621 в блок 605 декодера STT сервер 250 может применять второй алгоритм 610 векторизации входных данных, реализованный подобно алгоритму 410 векторизации входных данных или алгоритму 415 векторизации целевых данных. Кроме того, как описано выше применительно к входным данным 412 и целевым данным 417, сервер 250 может применять в отношении дополнительных входных данных 621 позиционный алгоритм векторизации (не показан), способный формировать вектор, указывающий на позиционные данные в частях предоставленных данных.[0147] It is contemplated that to input additional input data 621 to STT decoder block 605, server 250 may employ a second input data vectoring algorithm 610, implemented similar to input data vectoring algorithm 410 or target data vectoring algorithm 415. In addition, as described above with respect to input data 412 and target data 417, server 250 may apply to additional input data 621 a positional vectorization algorithm (not shown) capable of generating a vector pointing to positional data in portions of the provided data.

[0148] Как и в представленных выше примерах, касающихся обучения модели 304 NLP и модели 306 TTS, сервер 250 может получать входные данные 412, целевые данные 417 и дополнительные входные данные 621 для их ввода в модель 302 STT из соответствующего цифрового объекта, такого как обучающий цифровой объект 640 STT, как описано ниже.[0148] As in the above examples regarding training the NLP model 304 and the TTS model 306, the server 250 may receive input data 412, target data 417, and additional input data 621 for input to the STT model 302 from a corresponding digital object, such as training digital object 640 STT, as described below.

[0149] Согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, для использования модели 302 STT с целью формирования текстовых представлений речевых фрагментов для входных звуковых представлений фрагментов человеческой речи, таких как текстовое представление 255 речевого фрагмента, сервер 250 может выполнять два соответствующих процесса в отношении модели 302 STT. Первый процесс из числа двух процессов представляет собой процесс обучения, где сервер 250 способен на основе обучающего набора данных обучать модель 302 STT формированию текстового представления 255 речевого фрагмента, как описано ниже. Второй процесс представляет собой процесс этапа использования, где сервер 250 способен применять обученную таким образом модель 302 STT в отношении входных звуковых представлений согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, как описано ниже.[0149] According to some non-limiting embodiments of the present technology, to use the STT model 302 to generate textual speech representations for input human speech audio representations, such as speech text representation 255, the server 250 may perform two corresponding processes in regarding the 302 STT. The first process of the two processes is a training process, where the server 250 is able, based on the training data set, to train the STT model 302 to generate a text representation 255 of a speech fragment, as described below. The second process is a use phase process where the server 250 is capable of applying the thus trained STT model 302 to the input audio representations according to certain non-limiting embodiments of the present technology, as described below.

Процесс обученияLearning process

[0150] Согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, сервер 250 может обучать модель 302 STT на основе обучающего набора данных STT, содержащего множество обучающих цифровых объектов STT, формируемых сервером 250 с использованием обучающих речевых фрагментов обучающих пользователей.[0150] According to some non-limiting embodiments of the present technology, server 250 may train an STT model 302 based on an STT training dataset containing a plurality of training STT digital objects generated by server 250 using training speech fragments of training users.

[0151] В частности, в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии обучающий цифровой объект 640 STT из множества обучающих цифровых объектов STT может содержать (а) обучающее звуковое представление 642 речевого фрагмента, сформированное на основе обучающего речевого фрагмента обучающего пользователя подобно тому, как описано выше применительно к формированию звукового представления 245 речевого фрагмента, и (б) обучающее текстовое представление 644, например, сформированное вручную (например, введенное с клавиатуры) обучающим пользователем во время формирования обучающего цифрового объекта 640 STT (см. фиг. 6). В дополнительных не имеющих ограничительного характера вариантах осуществления настоящей технологии обучающее текстовое представление 644 речевого фрагмента может быть заранее сформировано для дальнейшего его предоставления обучающему пользователю, который затем формирует обучающий речевой фрагмент на основе обучающего текстового представления 644 речевого фрагмента.[0151] In particular, in some non-limiting embodiments of the present technology, an STT training digital object 640 of a plurality of STT training digital objects may comprise (a) a training audio speech representation 642 generated from a training user's training speech speech similar to as described above with respect to the generation of an audio representation 245 of a speech fragment, and (b) a training text representation 644, for example, generated manually (eg, entered from a keyboard) by a training user during the generation of the STT training digital object 640 (see FIG. 6). In additional non-limiting embodiments of the present technology, the training speech text representation 644 may be pre-generated for further provision to the training user, who then generates the training speech fragment based on the training speech text representation 644.

[0152] В других не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 250 может формировать обучающий цифровой объект 640 STT на основе заранее записанной речи, как описано выше применительно к обучению модели 306 TTS.[0152] In other non-limiting embodiments of the present technology, server 250 may generate STT training digital object 640 from pre-recorded speech, as described above with respect to training TTS model 306.

[0153] Кроме того, согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, обучающий цифровой объект 640 STT также может содержать (в) обучающую формируемую компьютером текстовую строку 646, в ответ на получение которой были сформированы обучающее звуковое представление 642 речевого фрагмента и/или обучающее текстовое представление 644 речевого фрагмента. Если обучающее звуковое представление 642 речевого фрагмента указывает на обучающий речевой фрагмент пользователя «4245, Bellechasse» («4245, Бельшасс») (см. один из представленных выше примеров лексической неоднозначности), который дополнительно отражается в обучающем текстовом представлении 644 речевого фрагмента, то обучающая формируемая компьютером тестовая строка 646 может указывать на вопрос «Can I have your address?» («Могу я узнать Ваш адрес?»). Таким образом, обучающая формируемая компьютером текстовая строка 646 может быть использована с целью предоставления контекста для обучающего речевого фрагмента пользователя, представленного обучающим звуковым представлением 642 речевого фрагмента и обучающим текстовым представлением 644 речевого фрагмента. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии обучающая формируемая компьютером текстовая строка 646 может быть сформирована, например, моделью 304 NLP (или другой подобной ей моделью) в ответ на получение предыдущего обучающего речевого фрагмента пользователя, как описано выше.[0153] In addition, according to some non-limiting embodiments of the present technology, the STT training digital object 640 may also comprise a training computer-generated text string 646 in response to which a training audio speech representation 642 and/or were generated. or a training text representation 644 of a speech fragment. If the training audio speech fragment 642 points to the training speech fragment of the user "4245, Bellechasse" (see one of the examples of lexical ambiguity presented above), which is further reflected in the training text speech fragment representation 644, then the training computer-generated test string 646 may indicate the question “Can I have your address?” (“May I know your address?”). Thus, the training computer-generated text string 646 may be used to provide context for the user's training speech fragment, represented by the training audio speech fragment 642 and the training text speech fragment 644. In some non-limiting embodiments of the present technology, the training computer-generated text string 646 may be generated, for example, by the NLP model 304 (or other similar model) in response to receiving a previous training speech fragment of the user, as described above.

[0154] Кроме того, как описано выше, для подачи обучающего цифрового объекта 640 STT в модель 302 STT сервер 250 может преобразовывать обучающее звуковое представление 642 речевого фрагмента, обучающее текстовое представление 644 речевого фрагмента и обучающую формируемую компьютером текстовую строку 646 в их соответствующие векторные представления. В частности, сервер 250 может применять алгоритм 410 векторизации входных данных в отношении обучающего звукового представления 642 речевого фрагмента для формирования множества 414 входных векторов, как описано выше. Подобным образом сервер 250 может применять алгоритм 415 векторизации целевых данных в отношении обучающего текстового представления 644 речевого фрагмента для формирования множества целевых векторов. И наконец, сервер 250 может применять второй алгоритм 610 векторизации входных данных в отношении обучающей формируемой компьютером текстовой строки 646 для формирования множества 627 дополнительных входных векторов.[0154] Additionally, as described above, to supply the training digital STT object 640 to the STT model 302, the server 250 may convert the training audio speech fragment representation 642, the training speech text representation 644, and the training computer-generated text string 646 into their respective vector representations. . In particular, server 250 may apply input vectorization algorithm 410 to training audio speech representation 642 to generate a plurality of input vectors 414 as described above. Likewise, the server 250 may apply the target data vectorization algorithm 415 to the training text representation 644 of the speech fragment to generate a plurality of target vectors. Finally, server 250 may apply a second input vectorization algorithm 610 to the training computer-generated text string 646 to generate a plurality of additional input vectors 627.

[0155] Кроме того, согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, сервер 250 может подавать (а) множество 414 входных векторов, представляющих обучающее звуковое представление 642 речевого фрагмента, в стек 402 слоев кодера модели 302 STT, например, в блок 404 кодера, (б) множество 419 целевых векторов, представляющих обучающее текстовое представление 644 речевого фрагмента, в стек 603 слоев декодера STT модели 302 STT, например, в блок 605 декодера STT, и (в) множество 627 дополнительных входных векторов, представляющих обучающую формируемую компьютером текстовую строку 646, также в блок 605 декодера STT. Как описано выше, в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 250 может подавать множество 419 целевых векторов и множество 627 дополнительных входных векторов в различные слои MHA блока 605 декодера STT, т.е. в слой 407 MHA декодера и в дополнительный слой 607 MHA, соответственно.[0155] Additionally, according to some non-limiting embodiments of the present technology, server 250 may provide a plurality of input vectors 414 representing a training audio representation 642 of a speech fragment to a layer stack 402 of an STT model 302 encoder, such as a block 404 encoders, (b) a plurality of 419 target vectors representing the training text representation 644 of the speech fragment, into the STT decoder layer stack 603 of the STT model 302, for example, into the STT decoder block 605, and (c) a plurality 627 of additional input vectors representing the training generated the computer text string 646, also into the STT decoder block 605. As described above, in some non-limiting embodiments of the present technology, server 250 may provide a plurality of target vectors 419 and a plurality of additional input vectors 627 to various MHA layers of the STT decoder block 605, i.e. to the decoder MHA layer 407 and to the additional MHA layer 607, respectively.

[0156] Таким образом, сервер 250 может предоставлять модели 302 STT множество обучающих цифровых объектов STT, например, содержащее тысячи или сотни тысяч обучающих цифровых объектов STT, подобных обучающему цифровому объекту 640 STT. Кроме того, как описано выше, сервер 250 может корректировать первоначальные веса узлов каждого слоя из стека 402 слоев кодера и из стека 603 слоев декодера STT путем использования алгоритма обратного распространения и минимизации функции потерь.[0156] Thus, server 250 may provide STT model 302 with a plurality of STT training digital objects, for example, containing thousands or hundreds of thousands of STT training digital objects similar to STT training digital object 640. Additionally, as described above, server 250 may adjust the initial node weights of each layer from the encoder layer stack 402 and from the STT decoder layer stack 603 by using a backpropagation algorithm and minimizing the loss function.

[0157] Таким образом, сервер 250 может обучать модель 302 STT формированию текстовых представлений речевых фрагментов, таких как текстовое представление 255 речевого фрагмента, для фрагментов человеческой речи на основе их соответствующих звуковых представлений речевых фрагментов.[0157] Thus, the server 250 can train the STT model 302 to generate textual speech representations, such as textual speech representation 255, for human speech fragments based on their corresponding audio speech fragment representations.

Процесс этапа использованияUse phase process

[0158] Согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, в ходе этапа использования сервер 250 может использовать обученную таким образом модель 302 STT для распознавания фрагментов человеческой речи. На фиг. 7 представлена схема модели 302 STT, представленной на фиг. 6, которая выполняется сервером 250 в ходе этапа использования, согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии.[0158] According to some non-limiting embodiments of the present technology, during the use phase, the server 250 may use the STT model 302 thus trained to recognize portions of human speech. In fig. 7 is a schematic diagram of the Model 302 STT shown in FIG. 6, which is executed by server 250 during the use phase, according to some non-limiting embodiments of the present technology.

[0159] В частности, сервер 250 может получать звуковое представление 245 речевого фрагмента для речевого фрагмента 235 пользователя, полученного от пользователя 230. Кроме того, сервер 250 может применять алгоритм 410 векторизации входных данных в отношении звукового представления 245 речевого фрагмента с целью формирования представляющего его множества 414 входных векторов для подачи в стек 402 слоев кодера модели 302 STT. Сервер 250 также может получать от модели 304 NLP предыдущую формируемую компьютером текстовую строку 360, которая использовалась для формирования моделью 306 TTS предыдущего соответствующего формируемого компьютером речевого фрагмента, в ответ на который пользователь 230 предоставил речевой фрагмент 235 пользователя. Таким образом, согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, сервер 250 может применять второй алгоритм 610 векторизации входных данных в отношении предыдущей формируемой компьютером текстовой строки 360 для формирования множества 627 дополнительных входных векторов. Затем сервер 250 может подавать сформированное таким образом множество 627 дополнительных входных векторов, представляющих предыдущую формируемую компьютером текстовую строку 360, в дополнительный слой 607 MHA блока 605 декодера STT модели 302 STT.[0159] In particular, the server 250 may obtain an audio speech fragment representation 245 for a user speech fragment 235 received from the user 230. In addition, the server 250 may apply an input data vectorization algorithm 410 to the audio speech fragment representation 245 to generate a representation thereof. a plurality of 414 input vectors to feed into the Model 302 STT encoder layer stack 402. The server 250 may also receive from the NLP model 304 the previous computer-generated text string 360 that was used to generate the TTS model 306's previous corresponding computer-generated speech fragment in response to which the user 230 provided a user speech fragment 235. Thus, according to some non-limiting embodiments of the present technology, server 250 may apply a second input data vectorization algorithm 610 to the previous computer-generated text string 360 to generate a plurality of additional input vectors 627. The server 250 may then provide the thus generated plurality 627 of additional input vectors representing the previous computer-generated text string 360 to an additional MHA layer 607 of the STT decoder block 605 of the STT model 302.

[0160] Таким образом, в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии в ответ на получение множества 414 входных векторов и множества 627 дополнительных входных векторов модель 302 STT может формировать выходные данные 425, содержащие векторы распределения вероятностей, указывающие на текстовое представление 255 речевого фрагмента для речевого фрагмента 235 пользователя.[0160] Thus, in some non-limiting embodiments of the present technology, in response to receiving a plurality of input vectors 414 and a plurality of additional input vectors 627, the STT model 302 may generate output data 425 comprising probability distribution vectors indicative of a textual speech representation 255 fragment for the user's speech fragment 235.

[0161] В результате путем выполнения обученной таким образом модели 302 STT и предоставления ей предыдущей формируемой компьютером текстовой строки, использованной для формирования моделью 306 TTS соответствующих предыдущих речевых ответов приложения 265 виртуального помощника, сервер 250 может предоставлять контекст для каждого речевого фрагмента пользователя для пользователя 230, что позволяет повысить качество формирования моделью 302 STT соответствующих текстовых представлений речевых фрагментов, например, путем устранения описанных выше проблем с лексической неоднозначностью.[0161] As a result, by executing the STT model 302 so trained and providing it with the previous computer-generated text string used to generate the TTS model 306's corresponding previous speech responses from the virtual assistant application 265, the server 250 can provide context for each user speech fragment to the user 230 , which makes it possible to improve the quality of the STT model 302's generation of corresponding textual representations of speech fragments, for example, by eliminating the problems with lexical ambiguity described above.

[0162] Например, для каждого следующего экземпляра речевого фрагмента 235 пользователя сервер 250 может предоставлять модели 302 STT соответствующую предыдущую формируемую компьютером текстовую строку, ранее выданную моделью 304 NLP модели 306 TTS для формирования соответствующего предыдущего речевого ответа для приложения 265 виртуального помощника, в качестве контекста для следующего речевого фрагмента пользователя. Таким образом, сервер 250 может повышать точность распознавания речи моделью 302 STT, за счет чего приложение 265 виртуального помощника способно предоставлять более ожидаемые и релевантные речевые ответы пользователю 230, улучшая таким образом впечатление пользователя от взаимодействия с приложением 265 виртуального помощника.[0162] For example, for each subsequent instance of user speech 235, server 250 may provide STT model 302 with a corresponding previous computer-generated text string previously output by NLP model 304 of TTS model 306 to generate the corresponding previous speech response for virtual assistant application 265 as context. for the user's next speech fragment. In this way, the server 250 can improve the speech recognition accuracy of the STT model 302, whereby the virtual assistant application 265 is able to provide more expected and relevant speech responses to the user 230, thereby improving the user's experience interacting with the virtual assistant application 265.

СпособWay

[0163] Описанные выше архитектура и примеры позволяют выполнять способ формирования текстового представления речевого фрагмента пользователя, например, текстового представления 255 речевого фрагмента для речевого фрагмента 235 пользователя. На фиг. 8 представлена блок-схема способа 800 согласно не имеющим ограничительного характера вариантам осуществления настоящей технологии. Способ 800 может выполняться сервером 250.[0163] The architecture and examples described above enable a method of generating a textual representation of a user's speech fragment, for example, a textual speech fragment representation 255 for a user's speech fragment 235. In fig. 8 is a flow diagram of a method 800 according to non-limiting embodiments of the present technology. Method 800 may be performed by server 250.

Шаг 802: получение сервером от электронного устройства аудиосигнала, являющегося звуковым представлением речевого фрагмента пользователя, представляющего собой ответ на формируемый компьютером речевой фрагмент, ранее выданный электронным устройством пользователю.Step 802: The server receives from the electronic device an audio signal that is an audio representation of the user's speech fragment, which is a response to the computer-generated speech fragment previously provided by the electronic device to the user.

[0164] Согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, способ 800 начинается с шага 802, на котором сервер 250 может получать звуковое представление речевого фрагмента 235 пользователя 230, такое как звуковое представление 245 речевого фрагмента, как описано выше со ссылкой на фиг. 3.[0164] According to some non-limiting embodiments of the present technology, method 800 begins at step 802, in which the server 250 may receive an audio representation of a speech fragment 235 of a user 230, such as an audio representation 245 of a speech fragment as described above with reference to FIG. . 3.

[0165] Как описано выше, пользователь 230 может предоставлять речевой фрагмент 235 пользователя во время своего взаимодействия с приложением 265 виртуального помощника, выполняемого вторым сервером 260, в ответ на предыдущий соответствующий формируемый компьютером речевой фрагмент, сформированный для него моделью 306 TTS.[0165] As described above, the user 230 may provide a user speech fragment 235 during his interaction with the virtual assistant application 265 executed by the second server 260 in response to a previous corresponding computer-generated speech fragment generated for him by the TTS model 306.

[0166] Способ 800 продолжается на шаге 804.[0166] Method 800 continues at step 804.

Шаг 804: получение сервером формируемой компьютером текстовой строки, являющейся текстовым представлением формируемого компьютером речевого фрагмента.Step 804: The server receives a computer-generated text string that is a text representation of the computer-generated speech fragment.

[0167] На шаге 804 сервер 250 может получать через сеть 240 связи от модели 304 NLP, размещенной на втором сервере 260, предыдущую формируемую компьютером текстовую строку 360, использованную для формирования предыдущего соответствующего формируемого компьютером речевого фрагмента, в ответ на который пользователь 230 предоставил речевой фрагмент 235 пользователя, как описано со ссылкой на фиг. 7.[0167] At step 804, server 250 may receive, via communication network 240 from NLP model 304 hosted on second server 260, the previous computer-generated text string 360 used to generate the previous corresponding computer-generated speech fragment in response to which user 230 provided speech user fragment 235, as described with reference to FIG. 7.

[0168] Согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, сервер 250 может использовать предыдущую формируемую компьютером текстовую строку 360 в качестве контекста для речевого фрагмента 235 пользователя при формировании с использованием модели 302 STT текстового представления 255 речевого фрагмента для речевого фрагмента 235 пользователя, как описано выше со ссылкой на фиг. 7.[0168] According to some non-limiting embodiments of the present technology, the server 250 may use a previous computer-generated text string 360 as context for the user's speech fragment 235 when generating, using the STT model 302, a text speech fragment representation 255 for the user's speech fragment 235. as described above with reference to FIG. 7.

[0169] Далее способ 800 переходит к шагу 806.[0169] Method 800 then proceeds to step 806.

Шаг 806: формирование сервером с использованием модели STT другой текстовой строки, являющейся текстовым представлением речевого фрагмента пользователя, на основе аудиосигнала и формируемой компьютером текстовой строки, учитываемой в качестве контекста речевого фрагмента пользователя.Step 806: The server generates, using the STT model, another text string that is a text representation of the user's speech fragment based on the audio signal and a computer-generated text string taken into account as the context of the user's speech fragment.

[0170] На шаге 806 сервер 250 может формировать с использованием модели 302 STT текстовое представление 255 речевого фрагмента для речевого фрагмента 235 пользователя с учетом в качестве контекста для него предыдущей формируемой компьютером текстовой строки 360. Как описано выше, предыдущая формируемая компьютером текстовая строка 360 использована для формирования предыдущего соответствующего формируемого компьютером речевого фрагмента, в ответ на который пользователь 230 предоставил речевой фрагмент 235 пользователя.[0170] At step 806, the server 250 may generate, using the STT model 302, a speech text representation 255 for the user's speech fragment 235, taking into account as context therefor the previous computer-generated text string 360. As described above, the previous computer-generated text string 360 is used. to generate a previous corresponding computer-generated speech fragment, in response to which the user 230 provided a user speech fragment 235.

[0171] Согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, модель 302 STT может быть реализована в виде модели машинного обучения. Например, как описано выше со ссылкой на фиг. 6, модель 302 STT может быть реализована в виде модели NN на основе трансформера с архитектурой кодер-декодер, такой как архитектура 400 модели машинного обучения, описанная выше со ссылкой на фиг. 4. Согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, модель 302 STT может содержать некоторые дополнительные компоненты, помимо предусмотренных в архитектуре 400 модели машинного обучения.[0171] According to some non-limiting embodiments of the present technology, STT model 302 may be implemented as a machine learning model. For example, as described above with reference to FIG. 6, the STT model 302 may be implemented as a transformer-based NN model with an encoder-decoder architecture such as the machine learning model architecture 400 described above with reference to FIG. 4. According to some non-limiting embodiments of the present technology, the STT model 302 may contain some additional components beyond those provided in the machine learning model architecture 400.

[0172] В частности, вместо стека 403 слоев декодера модель 302 STT может содержать стек 603 слоев декодера STT, в котором архитектура блока 605 декодера STT отличается от архитектуры блока 405 декодера тем, что после слоя 409 MHA кодера-декодера предусмотрен дополнительный слой 607 MHA.[0172] In particular, instead of a decoder layer stack 403, the STT model 302 may include an STT decoder layer stack 603, in which the architecture of the STT decoder block 605 differs from the architecture of the decoder block 405 in that an additional MHA layer 607 is provided after the encoder-decoder MHA layer 409 .

[0173] Сервер 250 может на основе обучающего набора данных STT обучать модель 302 STT формированию текстового представления 255 речевого фрагмента с учетом в качестве контекста для него предыдущей формируемой компьютером текстовой строки 360, как описано выше со ссылкой на фиг. 6. В частности, согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, обучающий набор данных STT может содержать множество обучающих цифровых объектов STT, при этом обучающий цифровой объект 640 STT из их числа может содержать (а) обучающее звуковое представление 642 речевого фрагмента, сформированное на основе обучающего речевого фрагмента обучающего пользователя подобно тому, как описано выше применительно к формированию звукового представления 245 речевого фрагмента, (б) обучающее текстовое представление 644 речевого фрагмента и (в) обучающую формируемую компьютером текстовую строку 646, в ответ на получение которой были сформированы обучающее звуковое представление 642 речевого фрагмента и/или обучающее текстовое представление 644 речевого фрагмента.[0173] The server 250 may, based on the STT training data set, train the STT model 302 to generate a text representation 255 of a speech fragment, taking as its context a previous computer-generated text string 360, as described above with reference to FIG. 6. In particular, according to some non-limiting embodiments of the present technology, the STT training data set may comprise a plurality of STT training digital objects, wherein the STT training digital object 640 may include (a) a training audio representation 642 of a speech fragment, generated from the training user's speech fragment in a manner similar to that described above with respect to the generation of the audio speech fragment 245, (b) the training text representation 644 of the speech fragment, and (c) the training computer-generated text string 646, in response to which the speech fragment was generated a training audio presentation 642 of a speech fragment and/or a training text representation 644 of a speech fragment.

[0174] Таким образом, для обучения модели 302 STT формированию текстового представления 255 речевого фрагмента сервер 250 может подавать в нее множество обучающих цифровых объектов STT, при этом подача обучающего цифрового объекта 640 STT включает в себя (а) ввод с применением алгоритма 410 векторизации входных данных обучающего звукового представления 642 речевого фрагмента в стек 402 слоев кодера, например, в блок 404 кодера, (б) ввод с применением алгоритма 415 векторизации целевых данных обучающего текстового представления 644 речевого фрагмента в стек 603 слоев декодера STT и, в частности, в слой 409 MHA кодера-декодера блока 605 декодера STT, и (в) ввод с применением второго алгоритма 610 векторизации входных данных обучающей формируемой компьютером текстовой строки 646 в дополнительный слой 607 MHA блока 605 декодера STT.[0174] Thus, to train the STT model 302 to generate a text representation 255 of a speech fragment, the server 250 may feed it a plurality of STT training digital objects, wherein the feeding of the STT training digital object 640 includes (a) input using an input vectorization algorithm 410 data of the training audio representation 642 of the speech fragment into the encoder layer stack 402, for example, into the encoder block 404, (b) input using the vectorization algorithm 415 of the target data of the training text representation 644 of the speech fragment into the STT decoder layer stack 603 and, in particular, into the layer 409 MHA encoder-decoder block 605 STT decoder, and (c) input using a second algorithm 610 input vectorization of training computer-generated text string 646 into an additional layer 607 MHA layer 607 of STT decoder block 605.

[0175] Кроме того, сервер 250 может использовать обученную таким образом модель 302 STT для формирования текстового представления 255 речевого фрагмента. В частности, как описано выше со ссылкой на фиг. 7, для формирования текстового представления 255 речевого фрагмента сервер 250 может (а) вводить с применением алгоритма 410 векторизации входных данных звуковое представление 245 речевого фрагмента в стек 402 слоев кодера модели 302 STT и (б) вводить с применением второго алгоритма 610 векторизации входных данных предыдущую формируемую компьютером текстовую строку 360 в стек 603 слоев декодера STT и, в частности, в дополнительный слой 607 MHA блока 605 декодера STT, как описано выше со ссылкой на фиг. 7.[0175] In addition, the server 250 may use the STT model 302 trained in this manner to generate a text representation 255 of the speech fragment. In particular, as described above with reference to FIG. 7, to generate a text representation 255 of a speech fragment, the server 250 may (a) input, using an input data vectorization algorithm 410, the audio representation 245 of a speech fragment into the STT model 302 encoder layer stack 402 and (b) input, using a second input data vectorization algorithm 610, the previous one. computer-generated text string 360 into the STT decoder layer stack 603 and, in particular, into the additional MHA layer 607 of the STT decoder block 605, as described above with reference to FIG. 7.

[0176] Затем сервер 250 может отправлять через сеть 240 связи текстовое представление 255 речевого фрагмента второму серверу 260, содержащему модель 304 NLP и модель 306 TTS. Таким образом, во-первых, с использованием модели 304 NLP второй сервер 260 может формировать формируемую компьютером текстовую строку 370 на основе текстового представления 255 речевого фрагмента. Во-вторых, с использованием модели 306 TTS на основе формируемой компьютером текстовой строки 370 второй сервер 260 может формировать соответствующий формируемый компьютером речевой фрагмент 270 для его отправки электронному устройству 210 в ответ на речевой фрагмент 235 пользователя, как описано выше со ссылкой на фиг. 4 и 5.[0176] The server 250 may then send, via communications network 240, a text representation 255 of the speech fragment to a second server 260 comprising an NLP model 304 and a TTS model 306. Thus, first, using the NLP model 304, the second server 260 can generate a computer-generated text string 370 based on the text representation 255 of the speech fragment. Second, using the TTS model 306, based on the computer-generated text string 370, the second server 260 can generate a corresponding computer-generated speech fragment 270 for sending to the electronic device 210 in response to the user speech fragment 235, as described above with reference to FIG. 4 and 5.

[0177] Согласно некоторым не имеющим ограничительного характера вариантам осуществления настоящей технологии, модель 304 NLP и модель 306 TTS могут быть реализованы в виде модели NN на основе трансформера и обучены, как описано выше со ссылкой на фиг. 4 и 5.[0177] According to some non-limiting embodiments of the present technology, the NLP model 304 and the TTS model 306 may be implemented as a transformer-based NN model and trained as described above with reference to FIG. 4 and 5.

[0178] Таким образом, сервер 250 с использованием модели 302 STT может формировать текстовые представления речевых фрагментов для следующих речевых фрагментов пользователя 230 для приложения 265 виртуального помощника. Например, с целью формирования соответствующего текстового представления речевого фрагмента для следующего речевого фрагмента пользователя, предоставленного пользователем 230 в ответ на формируемый компьютером речевой фрагмент 270, сервер 250 может использовать формируемую компьютером текстовую строку 370 из модели 304 NLP в качестве контекста для следующего речевого фрагмента пользователя, как описано выше применительно к речевому фрагменту 235 пользователя.[0178] Thus, the server 250, using the STT model 302, can generate textual representations of speech fragments for the following speech fragments of the user 230 for the virtual assistant application 265. For example, for the purpose of generating an appropriate textual representation of a speech segment for the user's next speech fragment provided by user 230 in response to computer-generated speech fragment 270, server 250 may use computer-generated text string 370 from the NLP model 304 as the context for the user's next speech fragment. as described above with respect to user speech 235.

[0179] Таким образом, некоторые варианты осуществления способа 800 позволяют повысить точность распознавания речи моделью 302 STT в речевых фрагментах пользователя, что, в свою очередь, обеспечивает повышение эффективности модели 304 NLP и модели 306 TTS при предоставлении формируемых компьютером речевых фрагментов в ответ на речевые фрагменты пользователя. В результате возможно улучшение впечатления пользователя от взаимодействия с приложениями виртуального помощника.[0179] Thus, some embodiments of method 800 improve the speech recognition accuracy of STT model 302 in user speech fragments, which in turn improves the performance of NLP model 304 and TTS model 306 in providing computer-generated speech fragments in response to speech user fragments. As a result, the user's experience of interacting with virtual assistant applications can be improved.

[0180] На этом выполнение способа 800 завершается.[0180] This completes the method 800.

[0181] Очевидно, что не все упомянутые в данном описании технические эффекты должны присутствовать в каждом варианте осуществления настоящей технологии.[0181] Obviously, not all technical effects mentioned in this description need to be present in every embodiment of the present technology.

[0182] Для специалиста в данной области техники могут быть очевидными возможные изменения и усовершенствования описанных выше вариантов осуществления настоящей технологии. Предшествующее описание приведено лишь в иллюстративных целях, а не для ограничения объема изобретения. Объем охраны настоящей технологии определяется исключительно объемом приложенной формулы изобретения.[0182] Possible changes and improvements to the above-described embodiments of the present technology may be apparent to one skilled in the art. The foregoing description is provided for illustrative purposes only and is not intended to limit the scope of the invention. The scope of protection of this technology is determined solely by the scope of the attached claims.

Claims (47)

1. Способ формирования текстовых представлений речевого фрагмента пользователя, полученного связанным с пользователем электронным устройством и предоставленного в ответ на формируемые компьютером речевые фрагменты, выдаваемые электронным устройством, способным связываться с сервером, предназначенным для формирования формируемых компьютером речевых фрагментов, при этом способ выполняется сервером и включает в себя:1. A method of generating textual representations of a user's speech fragment received by a user-associated electronic device and provided in response to computer-generated speech fragments output by an electronic device capable of communicating with a server for generating computer-generated speech fragments, wherein the method is performed by the server and includes into yourself: - получение сервером от электронного устройства аудиосигнала, являющегося звуковым представлением речевого фрагмента пользователя, представляющего собой ответ на формируемый компьютером речевой фрагмент, ранее выданный электронным устройством пользователю;- the server receives from an electronic device an audio signal, which is an audio representation of a user’s speech fragment, which is a response to a computer-generated speech fragment previously issued by the electronic device to the user; - получение сервером формируемой компьютером текстовой строки, являющейся текстовым представлением формируемого компьютером речевого фрагмента; и- receipt by the server of a computer-generated text string, which is a text representation of a computer-generated speech fragment; And - формирование сервером с использованием модели преобразования речи в текст (STT) другой текстовой строки, являющейся текстовым представлением речевого фрагмента пользователя, на основе аудиосигнала и формируемой компьютером текстовой строки, учитываемой в качестве контекста речевого фрагмента пользователя, - generation by the server, using the speech-to-text (STT) model, of another text string, which is a text representation of the user’s speech fragment, based on the audio signal and a computer-generated text string, taken into account as the context of the user’s speech fragment, при этом модель преобразования речи в текст (STT) представляет собой нейронную сеть (NN).wherein the speech-to-text (STT) model is a neural network (NN). 2. Способ по п. 1, отличающийся тем, что он дополнительно включает в себя:2. The method according to claim 1, characterized in that it additionally includes: - формирование сервером с использованием модели STT первой текстовой строки, являющейся текстовым представлением первого речевого фрагмента пользователя, на основе первого аудиосигнала, являющегося звуковым представлением первого речевого фрагмента пользователя;- generation by the server, using the STT model, of a first text line, which is a text representation of the user’s first speech fragment, based on the first audio signal, which is an audio representation of the user’s first speech fragment; - формирование сервером с использованием другой модели формируемой компьютером текстовой строки на основе первой текстовой строки; и- generation by the server using a different model of a computer-generated text string based on the first text string; And - формирование сервером с использованием модели преобразования текста в речь (TTS) формируемого компьютером аудиосигнала, являющегося звуковым представлением формируемого компьютером речевого фрагмента, на основе формируемой компьютером текстовой строки.- generation by the server, using a text-to-speech (TTS) model, of a computer-generated audio signal, which is an audio representation of a computer-generated speech fragment, based on a computer-generated text string. 3. Способ по п. 1, где нейронная сеть (NN) имеет архитектуру кодер-декодер, содержащую стек слоев кодера и стек слоев декодера, а формирование другой текстовой строки включает в себя: 3. The method according to claim 1, where the neural network (NN) has an encoder-decoder architecture containing a stack of encoder layers and a stack of decoder layers, and generating another text string includes: - формирование сервером звукового вектора, представляющего аудиосигнал, с использованием алгоритма векторизации звука; - formation by the server of an audio vector representing an audio signal using an audio vectorization algorithm; - ввод сервером звукового вектора в стек кодера сети NN;- input by the server of the sound vector into the NN network encoder stack; - формирование сервером с использованием алгоритма векторизации текста текстового вектора, представляющего формируемую компьютером текстовую строку; и - generation by the server, using a text vectorization algorithm, of a text vector representing a computer-generated text string; And - ввод сервером текстового вектора в стек декодера сети NN.- input by the server of a text vector into the stack of the NN network decoder. 4. Способ по п. 3, отличающийся тем, что сеть NN представляет собой сеть NN на основе трансформера.4. The method according to claim 3, characterized in that the NN network is a transformer-based NN network. 5. Способ по п. 1, отличающийся тем, что он дополнительно включает в себя обучение модели STT на этапе обучения на основе обучающего набора данных, содержащего множество обучающих объектов, при этом обучающий объект содержит (а) указание на обучающий аудиосигнал, сформированный на основе обучающего речевого фрагмента пользователя, произнесенного обучающим пользователем, (б) первую обучающую текстовую строку, являющуюся текстовым представлением обучающего речевого фрагмента пользователя, и (в) вторую обучающую текстовую строку, используемую для предоставления контекста для первой текстовой строки и являющуюся текстовым представлением соответствующего формируемого компьютером речевого фрагмента, в ответ на который обучающий пользователь произнес обучающий речевой фрагмент пользователя. 5. The method according to claim 1, characterized in that it further includes training an STT model at the training stage based on a training data set containing a plurality of training objects, wherein the training object contains (a) an indication of a training audio signal generated based on of a training speech fragment of the user spoken by the training user, (b) a first training text string being a textual representation of the user's training speech fragment, and (c) a second training text string used to provide context for the first text string and being a textual representation of the corresponding computer-generated speech fragment, in response to which the training user uttered the user's training speech fragment. 6. Способ по п. 2, отличающийся тем, что он дополнительно включает в себя получение сервером первого аудиосигнала от электронного устройства.6. The method according to claim 2, characterized in that it further includes the server receiving a first audio signal from the electronic device. 7. Способ по п. 2, отличающийся тем, что он дополнительно включает в себя отправку сервером формируемого компьютером аудиосигнала электронному устройству.7. The method of claim 2, further comprising the server sending a computer-generated audio signal to the electronic device. 8. Способ по п. 2, отличающийся тем, что другая модель содержит модель обработки естественной речи (NLP).8. The method according to claim 2, characterized in that the other model contains a natural speech processing (NLP) model. 9. Способ по п. 1 или 2, отличающийся тем, что одна или несколько моделей размещены на другом сервере. 9. Method according to claim 1 or 2, characterized in that one or more models are hosted on another server. 10. Способ по п. 8, отличающийся тем, что модель NLP представляет собой модель NN на основе трансформера. 10. The method according to claim 8, characterized in that the NLP model is a transformer-based NN model. 11. Способ по п. 2, отличающийся тем, что модель TTS представляет собой модель NN на основе трансформера.11. The method according to claim 2, characterized in that the TTS model is a transformer-based NN model. 12. Способ по п. 2, отличающийся тем, что он дополнительно включает в себя:12. The method according to claim 2, characterized in that it additionally includes: - формирование сервером с использованием модели STT второй текстовой строки на основе второго аудиосигнала, являющегося звуковым представлением второго речевого фрагмента пользователя, соответствующего запросу, следующему за формируемым компьютером речевым фрагментом;- generation by the server, using the STT model, of a second text string based on a second audio signal, which is an audio representation of the second speech fragment of the user, corresponding to the request following the computer-generated speech fragment; - формирование сервером на основе второй текстовой строки с использованием другой модели другой формируемой компьютером текстовой строки, являющейся текстовым представлением другого формируемого компьютером речевого фрагмента, подлежащего предоставлению пользователю;- generation by the server, based on the second text string using a different model, of another computer-generated text string, which is a text representation of another computer-generated speech fragment to be provided to the user; - формирование сервером с использованием модели TTS на основе другой формируемой компьютером текстовой строки другого формируемого компьютером аудиосигнала, являющегося звуковым представлением другого формируемого компьютером речевого фрагмента, подлежащего предоставлению пользователю в ответ на второй речевой фрагмент пользователя;- generating by the server, using the TTS model, based on another computer-generated text string, another computer-generated audio signal, which is an audio representation of another computer-generated speech fragment to be provided to the user in response to the second speech fragment of the user; - получение сервером от электронного устройства третьего аудиосигнала, являющегося звуковым представлением третьего речевого фрагмента пользователя, соответствующего другому запросу, следующему за другим формируемым компьютером речевым фрагментом; и- receipt by the server from the electronic device of a third audio signal, which is an audio representation of the third speech fragment of the user, corresponding to another request following another computer-generated speech fragment; And - формирование сервером с использованием модели STT на основе третьего аудиосигнала, формируемой компьютером текстовой строки и другой формируемой компьютером текстовой строки третьей текстовой строки, являющейся текстовым представлением третьего речевого фрагмента пользователя, с учетом формируемой компьютером текстовой строки и другой формируемой компьютером текстовой строки в качестве контекста другого следующего запроса.- generating by the server, using the STT model, based on the third audio signal, a computer-generated text string and another computer-generated text string, a third text string that is a textual representation of the user's third speech fragment, taking into account the computer-generated text string and another computer-generated text string as the context of the other next request. 13. Способ по п. 12, отличающийся тем, что он дополнительно включает в себя отправку сервером другого формируемого компьютером аудиосигнала электронному устройству.13. The method of claim 12, further comprising the server sending another computer-generated audio signal to the electronic device. 14. Сервер для формирования текстовых представлений речевого фрагмента пользователя, полученного электронным устройством, связанным с пользователем и способным связываться с сервером, и предоставленного в ответ на формируемые компьютером речевые фрагменты, выдаваемые электронным устройством, при этом сервер содержит процессор и машиночитаемый физический носитель информации, хранящий команды, и процессор выполнен с возможностью совершения следующих действий при исполнении команд: 14. A server for generating text representations of a user's speech fragment received by an electronic device associated with the user and capable of communicating with the server, and provided in response to computer-generated speech fragments output by the electronic device, wherein the server includes a processor and a machine-readable physical storage medium storing commands, and the processor is configured to perform the following actions when executing commands: - получение от электронного устройства аудиосигнала, являющегося звуковым представлением речевого фрагмента пользователя, представляющего собой ответ на формируемый компьютером речевой фрагмент, ранее выданный электронным устройством пользователю;- receiving from an electronic device an audio signal, which is an audio representation of a user’s speech fragment, which is a response to a computer-generated speech fragment previously issued by the electronic device to the user; - получение формируемой компьютером текстовой строки, являющейся текстовым представлением формируемого компьютером речевого фрагмента; и- obtaining a computer-generated text string, which is a text representation of a computer-generated speech fragment; And - формирование с использованием модели STT другой текстовой строки, являющейся текстовым представлением речевого фрагмента пользователя, на основе аудиосигнала и формируемой компьютером текстовой строки, учитываемой в качестве контекста речевого фрагмента пользователя, - generation, using the STT model, of another text string, which is a text representation of the user’s speech fragment, based on the audio signal and a computer-generated text string, taken into account as the context of the user’s speech fragment, при этом модель преобразования речи в текст (STT) представляет собой нейронную сеть (NN).wherein the speech-to-text (STT) model is a neural network (NN). 15. Сервер по п. 14, отличающийся тем, что процессор дополнительно выполнен с возможностью:15. Server according to claim 14, characterized in that the processor is additionally configured to: - формирования с использованием модели STT первой текстовой строки, являющейся текстовым представлением первого речевого фрагмента пользователя, на основе первого аудиосигнала, являющегося звуковым представлением первого речевого фрагмента пользователя;- generating, using the STT model, a first text line, which is a text representation of the user's first speech fragment, based on the first audio signal, which is an audio representation of the user's first speech fragment; - формирования с использованием другой модели формируемой компьютером текстовой строки на основе первой текстовой строки;- generating, using another model, a computer-generated text string based on the first text string; - формирования с использованием модели TTS формируемого компьютером аудиосигнала, являющегося звуковым представлением формируемого компьютером речевого фрагмента, на основе формируемой компьютером текстовой строки, - generating, using the TTS model, a computer-generated audio signal, which is an audio representation of a computer-generated speech fragment, based on a computer-generated text string, 16. Сервер по п. 14, отличающийся тем, что нейронная сеть NN имеет архитектуру кодер-декодер, содержащую стек слоев кодера и стек слоев декодера, а процессор выполнен с возможностью формирования другой текстовой строки путем: 16. The server according to claim 14, characterized in that the NN neural network has an encoder-decoder architecture containing a stack of encoder layers and a stack of decoder layers, and the processor is configured to generate another text string by: - формирования звукового вектора, представляющего аудиосигнал, с использованием алгоритма векторизации звука; - generating a sound vector representing an audio signal using a sound vectorization algorithm; - ввода звукового вектора в стек кодера сети NN;- inputting the sound vector into the NN network encoder stack; - формирования с использованием алгоритма векторизации текста текстового вектора, представляющего формируемую компьютером текстовую строку; и- generating, using a text vectorization algorithm, a text vector representing a computer-generated text string; And - ввода текстового вектора в стек декодера сети NN.- entering a text vector into the NN network decoder stack. 17. Сервер по п. 16, отличающийся тем, что сеть NN представляет собой сеть NN на основе трансформера.17. The server according to claim 16, characterized in that the NN network is a transformer-based NN network. 18. Сервер по п. 14, отличающийся тем, что процессор дополнительно выполнен с возможностью обучения модели STT на этапе обучения на основе обучающего набора данных, содержащего множество обучающих объектов, при этом обучающий объект содержит (а) указание на обучающий аудиосигнал, сформированный на основе обучающего речевого фрагмента пользователя, произнесенного обучающим пользователем, (б) первую обучающую текстовую строку, являющуюся текстовым представлением обучающего речевого фрагмента пользователя, и (в) вторую обучающую текстовую строку, используемую для предоставления контекста для первой текстовой строки и являющуюся текстовым представлением соответствующего формируемого компьютером речевого фрагмента, в ответ на который обучающий пользователь произнес обучающий речевой фрагмент пользователя. 18. The server according to claim 14, characterized in that the processor is additionally configured to train the STT model at the training stage based on a training data set containing a plurality of training objects, wherein the training object contains (a) an indication of a training audio signal generated based on of a training speech fragment of the user spoken by the training user, (b) a first training text string being a textual representation of the user's training speech fragment, and (c) a second training text string used to provide context for the first text string and being a textual representation of the corresponding computer-generated speech fragment, in response to which the training user uttered the user's training speech fragment. 19. Сервер по п. 15, отличающийся тем, что другая модель содержит модель NLP.19. The server according to claim 15, characterized in that the other model contains an NLP model. 20. Сервер по п. 14 или 15, отличающийся тем, что одна или несколько моделей размещены на другом сервере, связанном с сервером. 20. The server according to claim 14 or 15, characterized in that one or more models are hosted on another server connected to the server.
RU2021138538A 2021-12-23 2021-12-23 Method and system for recognizing user's speech fragment RU2808582C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/081,634 US20230206910A1 (en) 2021-12-23 2022-12-14 Method and system for recognizing a user utterance

Publications (2)

Publication Number Publication Date
RU2021138538A RU2021138538A (en) 2023-06-23
RU2808582C2 true RU2808582C2 (en) 2023-11-29

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120245944A1 (en) * 2010-01-18 2012-09-27 Apple Inc. Intelligent Automated Assistant

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120245944A1 (en) * 2010-01-18 2012-09-27 Apple Inc. Intelligent Automated Assistant
US20130110515A1 (en) * 2010-01-18 2013-05-02 Apple Inc. Disambiguation Based on Active Input Elicitation by Intelligent Automated Assistant

Similar Documents

Publication Publication Date Title
JP7066349B2 (en) Translation method, translation equipment and computer program
US20210209315A1 (en) Direct Speech-to-Speech Translation via Machine Learning
EP4007997B1 (en) Controlling expressivity in end-to-end speech synthesis systems
US11393453B2 (en) Clockwork hierarchical variational encoder
US7552053B2 (en) Techniques for aiding speech-to-speech translation
US11881210B2 (en) Speech synthesis prosody using a BERT model
JP2023535230A (en) Two-level phonetic prosodic transcription
US11093110B1 (en) Messaging feedback mechanism
JP7257593B2 (en) Training Speech Synthesis to Generate Distinguishable Speech Sounds
US20240038214A1 (en) Attention-Based Clockwork Hierarchical Variational Encoder
US11151996B2 (en) Vocal recognition using generally available speech-to-text systems and user-defined vocal training
US11961515B2 (en) Contrastive Siamese network for semi-supervised speech recognition
Abougarair et al. Design and implementation of smart voice assistant and recognizing academic words
US11960852B2 (en) Robust direct speech-to-speech translation
JP2023175029A (en) Attention-based joint acoustic and text on-device end-to-end model
JP7190146B2 (en) Methods, Systems, and Computer-Readable Recording Medium for Distilling Longitudinal Spoken Language Understanding Knowledge Utilizing Text-Based Pre-Learning Models
US8401855B2 (en) System and method for generating data for complex statistical modeling for use in dialog systems
KR20230158107A (en) Efficient streaming non-circular on-device end-to-end model
Ion et al. A dialog manager for micro-worlds
RU2808582C2 (en) Method and system for recognizing user's speech fragment
US20220180762A1 (en) Computer assisted linguistic training including machine learning
US20230206910A1 (en) Method and system for recognizing a user utterance
Kankaria et al. RAAH. ai: An interactive chatbot for stress relief using Deep Learning and Natural Language Processing
WO2023197206A1 (en) Personalized and dynamic text to speech voice cloning using incompletely trained text to speech models
Kadam Text-To-Speech in Voice Assistants: Challenges and Mitigation Strategies