RU2803488C2 - Method and server for waveform generation - Google Patents

Method and server for waveform generation Download PDF

Info

Publication number
RU2803488C2
RU2803488C2 RU2021116052A RU2021116052A RU2803488C2 RU 2803488 C2 RU2803488 C2 RU 2803488C2 RU 2021116052 A RU2021116052 A RU 2021116052A RU 2021116052 A RU2021116052 A RU 2021116052A RU 2803488 C2 RU2803488 C2 RU 2803488C2
Authority
RU
Russia
Prior art keywords
vocoder
trained
server
teacher
waveform
Prior art date
Application number
RU2021116052A
Other languages
Russian (ru)
Other versions
RU2021116052A (en
Inventor
Владимир Владимирович Кириченко
Александр Александрович Молчанов
Дмитрий Михайлович Черненьков
Артем Валерьевич Бабенко
Владимир Андреевич Алиев
Дмитрий Александрович Баранчук
Original Assignee
Общество С Ограниченной Ответственностью «Яндекс»
Filing date
Publication date
Application filed by Общество С Ограниченной Ответственностью «Яндекс» filed Critical Общество С Ограниченной Ответственностью «Яндекс»
Priority to US17/828,592 priority Critical patent/US20220392480A1/en
Publication of RU2021116052A publication Critical patent/RU2021116052A/en
Application granted granted Critical
Publication of RU2803488C2 publication Critical patent/RU2803488C2/en

Links

Images

Abstract

FIELD: computer science.
SUBSTANCE: method includes obtaining a trained flow-based vocoder including reversible blocks and an untrained feed-forward vocoder including irreversible blocks that form a teacher-student network, performing a learning process on the teacher-student network, during which the server generates (i) a teacher-related waveform by a trained flow-based vocoder using the first spectrogram and the first input noise, (ii) a student-related waveform by an untrained feed-forward vocoder using the first spectrogram and the first input noise, and (iii) a loss value for a particular training iteration using the teacher-related waveform and the student-related waveform. The server then trains the untrained feed-forward vocoder to generate a waveform. The trained feed-forward vocoder is used instead of the trained flow-based vocoder to generate waveforms based on spectrograms and input noise.
EFFECT: improved efficiency of generating realistic audio representations of text.
17 cl, 7 dwg

Description

ОБЛАСТЬ ТЕХНИКИTECHNICAL FIELD

[01] Настоящая технология относится к генеративному моделированию и, в частности, к способу и серверу для генерирования волновой формы.[01] The present technology relates to generative modeling and, in particular, to a method and server for generating a waveform.

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

[02] Генеративное моделирование представляет собой задачу неконтролируемого обучения в машинном обучении, которая включает в себя автоматическое обнаружение и изучение регулярностей или закономерностей во входных данных таким образом, чтобы модель можно было использовать для генерирования или вывода новых примеров, которые могли бы быть правдоподобно извлечены из исходного набора данных. В процессе обучения большая совокупность данных в определенной области может быть собрана (например, миллионы изображений, предложений или звуков и т.д.) и может быть использована для обучения генеративной модели генерировать или синтезировать подобные данные.[02] Generative modeling is an unsupervised learning task in machine learning that involves automatically detecting and learning regularities or patterns in input data so that the model can be used to generate or infer new examples that could be plausibly extracted from original data set. During the learning process, a large body of data in a particular domain can be collected (eg millions of images, sentences or sounds, etc.) and can be used to train a generative model to generate or synthesize such data.

[03] Например, в генеративных состязательных сетях (GAN) используется методика обучения генеративной модели путем постановки задачи как задачи контролируемого (supervised) обучения с двумя подмоделями: моделью генератора, которая обучается генерировать новые примеры, и моделью дискриминатора, которая пытается классифицировать примеры как «настоящие» (из данной области), либо «поддельные» (сгенерированные). Две модели обучаются вместе в состязательной игре с нулевой суммой, пока модель дискриминатора не удается обмануть примерно в половине случаев, что означает, что модель генератора генерирует правдоподобные примеры.[03] For example, generative adversarial networks (GANs) use a technique for training a generative model by framing the problem as a supervised learning problem with two submodels: a generator model that learns to generate new examples, and a discriminator model that attempts to classify examples as " real" (from a given area), or "fake" (generated). The two models are trained together in a zero-sum adversarial game until the discriminator model fails to fool about half the time, meaning the generator model generates plausible examples.

[04] В другом примере модели нормализующих потоков (NF) представляют собой семейство генеративных моделей с легко обрабатываемыми распределениями, где как выборка, так и оценка плотности могут быть эффективными и точными. Применения включают в себя генерирование изображений, моделирование шума, генерирование видео, генерирование аудио, генерирование графов, обучение с подкреплением, компьютерную графику и физику.[04] In another example, normalizing flow (NF) models are a family of generative models with easily processed distributions, where both sampling and density estimation can be efficient and accurate. Applications include image generation, noise modeling, video generation, audio generation, graph generation, reinforcement learning, computer graphics, and physics.

[05] Генерирование речи используется во множестве различных приложений, от умных помощников до синтетических голосов для людей, не способных говорить самостоятельно. Различные способы генерирования искусственных голосов были разработаны, но было трудно эффективно создавать реалистичные и стилизованные голоса.[05] Speech generation is used in many different applications, from smart assistants to synthetic voices for people unable to speak independently. Various methods for generating artificial voices have been developed, but it has been difficult to effectively create realistic and stylized voices.

[06] Генерирование изображений используется во множестве различных приложений, в том числе алгоритмах повышения разрешения и восстановлении изображений. Различные способы генерирования искусственных изображений были разработаны, но было трудно создавать данные реалистичных изображений эффективным образом.[06] Image generation is used in many different applications, including upscaling algorithms and image restoration. Various methods for generating artificial images have been developed, but it has been difficult to generate realistic image data in an efficient manner.

[07] Патентная заявка США № 2020/402497 раскрывает систему с сетью NF ученика для изучения распределения спектрограмм CNN-учителя.[07] US Patent Application No. 2020/402497 discloses a student NF network system for learning the distribution of teacher CNN spectrograms.

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

[08] Целью настоящей технологии является устранение по меньшей мере некоторых проблем, имеющихся в предшествующем уровне техники. Варианты осуществления настоящей технологии могут обеспечить и/или расширить сферу применения подходов и/или способов достижения целей и задач настоящей технологии.[08] The purpose of the present technology is to eliminate at least some of the problems present in the prior art. Embodiments of the present technology may provide and/or expand the scope of approaches and/or methods for achieving the goals and objectives of the present technology.

[09] В некоторых аспектах настоящей технологии обеспечен процесс дистилляции знаний между моделью учителя и моделью ученика с образованием сети «учитель-ученик». Более конкретно, модель учителя воплощается как предварительно обученная основанная на потоке модель, имеющая обратимые блоки, а модель ученика воплощается как необученная модель прямого распространения (feed-forward), имеющая необратимые блоки.[09] Some aspects of the present technology provide a process of distillation of knowledge between the teacher model and the student model to form a teacher-student network. More specifically, the teacher model is instantiated as a pretrained feed-forward model having reversible blocks, and the student model is instantiated as an untrained feed-forward model having irreversible blocks.

[10] Разработчики настоящей технологии разработали сеть учитель-ученик, в которой архитектура ученика в некотором смысле «приносит в жертву» обратимость архитектуры учителя в обмен на более компактную и эффективную модель по сравнению с архитектурой учителя. Использование более компактных и эффективных моделей вместо соответствующих основанных на потоке моделей полезно для ряда различных реализуемых компьютером приложений, таких как синтез речи и суперразрешение.[10] The developers of this technology have developed a teacher-student network in which the student architecture in a sense “sacrifices” the reversibility of the teacher architecture in exchange for a more compact and efficient model compared to the teacher architecture. Using more compact and efficient models instead of corresponding flow-based models is useful for a number of different computer-implemented applications such as speech synthesis and super-resolution.

Основанные на потоке моделиFlow-based models

[11] Вообще говоря, основанная на потоке генеративная модель является генеративной моделью, которая явно моделирует распределение вероятностей с использованием вероятностного закона изменения переменной для преобразования простого распределения в сложное. Прямое моделирование правдоподобия может обеспечить многие преимущества. Например, отрицательное логарифмическое правдоподобие может быть непосредственно вычислено и минимизировано как функция потерь. Кроме того, новые выборки могут быть сгенерированы путем осуществления выборки из исходного распределения и применения преобразования потока. Для сравнения, многие альтернативные способы генеративного моделирования, такие как вариационный автоэнкодер (VAE) и генеративная состязательная сеть (GAN), явно не представляют функцию правдоподобия.[11] Generally speaking, a flow-based generative model is a generative model that explicitly models a probability distribution using a probabilistic law of variable variation to transform a simple distribution into a complex one. Direct likelihood modeling can provide many benefits. For example, the negative log-likelihood can be directly calculated and minimized as a loss function. Additionally, new samples can be generated by sampling from the original distribution and applying a stream transformation. In comparison, many alternative generative modeling techniques, such as variational autoencoder (VAE) and generative adversarial network (GAN), do not explicitly represent the likelihood function.

[12] Следует отметить, что основанные на потоке модели могут использовать различные классы преобразований потока, например авторегрессионные и двудольные преобразования. Авторегрессионные преобразования включают в себя авторегрессионный поток (AF) и обратный авторегрессионный поток (IAF). AF похожи на авторегрессионные модели, которые позволяют проводить параллельную оценку плотности, но выполняют последовательный синтез. Для сравнения, IAF допускает параллельный синтез, но выполняет последовательную оценку плотности, что делает обучение на основе правдоподобия очень медленным. Вторая группа включает в себя двудольные преобразования, которые обеспечивают эффективное обучение на основе правдоподобия и параллельный синтез. Однако двудольные потоки обычно менее выразительны, чем AF. Следовательно, для достижения сопоставимой емкости им требуется больше слоев и большее число параметров.[12] It should be noted that flow-based models can use different classes of flow transformations, such as autoregressive and bipartite transformations. Autoregressive transformations include autoregressive flow (AF) and inverse autoregressive flow (IAF). AFs are similar to autoregressive models, which allow parallel density estimation but perform sequential synthesis. In comparison, IAF allows parallel synthesis but performs sequential density estimation, making likelihood learning very slow. The second group includes bipartite transformations that enable efficient likelihood learning and parallel synthesis. However, bipartite flows are usually less expressive than AF. Therefore, they require more layers and more parameters to achieve comparable capacity.

[13] Вообще говоря, нормализующий поток (NF) является преобразованием простого распределения вероятностей (например, стандартного нормального) в более сложное распределение с помощью последовательности обратимых и дифференцируемых отображений. Плотность выборки можно оценить, преобразовав ее обратно к исходному простому распределению, а затем вычислив произведение i) плотности обратно преобразованной выборки при этом распределении и ii) связанного изменения объема, вызванного последовательностью обратных преобразований. Изменение объема является произведением абсолютных значений определителей Якоби для каждого преобразования, как того требует формула замены переменных. Результатом этого подхода является механизм построения новых семейств распределений путем выбора начальной плотности и последующего объединения некоторого числа параметризованных, обратимых и дифференцируемых преобразований. Новая плотность может быть получена выборкой (путем выполнения выборки из начальной плотности и применения преобразований), и плотность в выборке (т.е. правдоподобие) может быть вычислена.[13] Generally speaking, normalizing flow (NF) is a transformation of a simple probability distribution (such as the standard normal) into a more complex distribution using a sequence of invertible and differentiable mappings. The sampling density can be estimated by transforming it back to the original simple distribution and then calculating the product of i) the density of the inversely transformed sample under that distribution and ii) the associated change in volume caused by the sequence of inverse transformations. The change in volume is the product of the absolute values of the Jacobian determinants for each transformation, as required by the change of variables formula. The result of this approach is a mechanism for constructing new families of distributions by choosing an initial density and then combining a number of parameterized, invertible and differentiable transformations. The new density can be obtained by sampling (by sampling from the initial density and applying transformations), and the density in the sample (ie the likelihood) can be calculated.

[14] Разработчики настоящей технологии осознали, что модели NF представляют собой мощный класс генеративных моделей, демонстрирующих хорошую производительность в нескольких связанных с речью и зрением проблемах. Как упоминалось выше, эти модели используют формулу замены переменных, которая обеспечивает «нормализованную» плотность после применения обратимых преобразований. Обратимые преобразования таких моделей могут комбинироваться друг с другом, и в смысле «потока», для создания более сложных обратимых преобразований. В отличие от других генеративных моделей, модели NF обратимы, обладают легко обрабатываемыми правдоподобиями и обеспечивают стабильное обучение. Поскольку модели NF допускают точное вычисление правдоподобия с помощь формулы замены переменных, их можно обучить, применяя методики максимизации правдоподобия. Как упоминалось выше, это свойство делает модели NF более желательными в некоторых ситуациях, чем, например, модели GAN, которые требуют состязательной оптимизации и могут страдать от исчезающих градиентов, коллапса режима, колебаний или циклического поведения.[14] The developers of the present technology realized that NF models are a powerful class of generative models that demonstrate good performance on several speech- and vision-related problems. As mentioned above, these models use a change of variables formula that provides a "normalized" density after applying invertible transformations. The reversible transformations of such models can be combined with each other, and in a "flow" sense, to create more complex reversible transformations. Unlike other generative models, NF models are invertible, have easily processed likelihoods, and provide stable learning. Since NF models allow exact likelihood calculation using a variable substitution formula, they can be trained using likelihood maximization techniques. As mentioned above, this property makes NF models more desirable in some situations than, for example, GAN models, which require adversarial optimization and may suffer from vanishing gradients, mode collapse, oscillations, or cyclic behavior.

[15] Некоторые NF могут быть выполнены с возможностью генерирования выходных данных на основе входного шума; тем не менее, другие NF могут дополнительно «обусловливаться» на основе входных обусловливающих данных. Условные NF набирают популярность в различных практических приложениях, связанных с речью и зрением, в частности для синтеза волновых форм (waveforms), суперразрешения изображений и генерирования облаков точек. Разработчики настоящей технологии разработали способы и системы, которые используют основанные на условном потоке модели для суперразрешения изображений и синтеза речи.[15] Some NFs can be configured to generate output data based on input noise; however, other NFs can be further "conditioned" based on conditioning inputs. Conditional NFs are gaining popularity in various practical applications related to speech and vision, in particular for waveform synthesis, image super-resolution, and point cloud generation. Developers of this technology have developed methods and systems that use conditional flow-based models for image super-resolution and speech synthesis.

Приложения суперразрешенияSuper resolution apps

[16] Суперразрешение (SR) является одной из фундаментальных проблем обработки изображений, которая направлена на улучшение качества изображений с низким разрешением (LR) путем повышения их разрешения до изображений с высоким разрешением (HR) с естественными высокочастотными деталями. Разработчики настоящей технологии осознали, что большинство подходов к SR изображений используют модели GAN, которые может быть трудно обучить из-за нестабильности состязательной оптимизации. Чтобы устранить этот недостаток, можно использовать модель SRFlow. О том, как можно реализовать модель SRFlow, рассказывается в статье под названием «SRFlow: Learning the Super-Resolution Space with Normalizing Flow», опубликованной в 2020 году под авторством Lugmayr и др., содержимое которой полностью включено в настоящий документ по ссылке.[16] Super-resolution (SR) is one of the fundamental problems in image processing, which aims to improve the quality of low-resolution (LR) images by upscaling them to high-resolution (HR) images with natural high-frequency details. The developers of the present technology realized that most image SR approaches use GAN models, which can be difficult to train due to the instability of adversarial optimization. To overcome this shortcoming, the SRFlow model can be used. How the SRFlow model can be implemented is described in a paper entitled “SRFlow: Learning the Super-Resolution Space with Normalizing Flow,” published in 2020 by Lugmayr et al., the contents of which are incorporated herein in full by reference.

[17] Вообще говоря, модель SRFlow имеет основанную на потоке архитектуру для оценки полного условного распределения естественных изображений HR, соответствующих определенному изображению LR, параметры которой обучаются путем максимизации правдоподобия. В частности, архитектура модели SRFlow состоит из кодера LR, который обеспечивает характерные признаки изображений LR в сеть с обратимым потоком. Потоковая сеть принимает соответствующее кодирование LR вместе с выборкой из начального распределения и преобразует их в изображение SR. Кодер LR представляет собой популярную архитектуру SR прямого распространения, основанную на блоках остаточной в остаточной плотности (RRDB). Этот блок применяет несколько остаточных и плотных пропускающих (skip) соединений без каких-либо слоев пакетной нормализации. Чтобы сформировать представление LR на нескольких уровнях, активации после каждого блока RRDB конкатенируются. Потоковая сеть организована в L уровней, каждый из которых работает с разрешением , где - индекс уровня, а - разрешение HR. Каждый уровень сначала выполняет операцию сжатия (squeeze), которая вдвое уменьшает пространственное разрешение. За операцией сжатия следует переходный этап, на котором изучается линейная обратимая интерполяция между соседними пикселями. Затем применяется последовательность условных потоковых этапов. В конце каждого уровня 50% каналов отделяются для оценки правдоподобия. Каждый потоковый этап состоит из четырех слоев. Сначала применяются слой нормализации активации (actnorm) и свертка 1×1. Затем следуют аффинный инжектор и условные слои аффинной связи.[17] Generally speaking, the SRFlow model has a flow-based architecture for estimating the full conditional distribution of natural HR images corresponding to a specific LR image, whose parameters are trained by likelihood maximization. Specifically, the SRFlow model architecture consists of an LR encoder that provides the characteristic features of LR images to a reversible flow network. The streaming network accepts the corresponding LR encoding along with a sample from the initial distribution and converts them into SR image. The LR encoder is a popular forward propagation SR architecture based on Residual in Residual Density Blocks (RRDB). This block applies multiple residual and dense skip connections without any batch normalization layers. To form a multi-level LR representation, the activations after each RRDB block are concatenated. The streaming network is organized into L levels, each of which operates at a resolution , Where - level index, and - HR permission. Each layer first performs a compression operation (squeeze), which reduces the spatial resolution by half. The compression operation is followed by a transition stage in which linear reversible interpolation between adjacent pixels is learned. A sequence of conditional flow stages is then applied. At the end of each level, 50% of the channels are separated to evaluate the likelihood. Each flow stage consists of four layers. First, an activation normalization layer (actnorm) and a 1x1 convolution are applied. This is followed by the affine injector and conditional affine connection layers.

[18] В некоторых вариантах осуществления настоящей технологии разработчики настоящей технологии разработали сеть учитель-ученик, в которой модель учителя представляет собой модель SRFlow, а модель ученика представляет собой модель прямого распространения, обучаемую для использования в приложениях SR вместо соответствующей модели SRFlow.[18] In some embodiments of the present technology, the developers of the present technology have developed a teacher-student network in which the teacher model is an SRFlow model and the student model is a feedforward model trained for use in SR applications in place of the corresponding SRFlow model.

Приложения синтеза речиSpeech synthesis applications

[19] Синтез речи может быть достигнут с помощью глубоких нейронных моделей, которые иногда называют «нейронными вокодерами». Следует отметить, что нейронный вокодер может синтезировать волновые формы во временной области, которые могут быть обусловлены мел-спектрограммами из модели «текст в спектрограмму».[19] Speech synthesis can be achieved using deep neural models, sometimes called "neural vocoders". It should be noted that the neural vocoder can synthesize time-domain waveforms that can be driven by mel spectrograms from the text-to-spectrogram model.

[20] Большинство современных нейронных вокодеров представляют собой авторегрессионные модели, которые обеспечивают хорошую производительность, но страдают от медленного процесса последовательной генерации. Требования к среде выполнения авторегрессионных вокодеров ограничивают их использование в приложениях реального времени. Разработчики настоящей технологии осознали, что существует потребность в методиках, направленных на ускорение вывода таких моделей. Существуют также вокодеры на основе GAN, однако они, как правило, уступают авторегрессионным вокодерам по точности воспроизведения речи.[20] Most modern neural vocoders are autoregressive models, which provide good performance but suffer from a slow sequential generation process. The runtime requirements of autoregressive vocoders limit their use in real-time applications. The developers of this technology realized that there was a need for techniques aimed at speeding up the inference of such models. There are also GAN-based vocoders, but they are usually inferior to autoregressive vocoders in terms of speech reproduction accuracy.

[21] Разработчики настоящей технологии осознали, что основанные на потоке модели могут успешно применяться для параллельного синтеза волновых форм с точностью воспроизведения, сравнимой с авторегрессионными моделями. Такие основанные на потоке вокодеры включают в себя модель WaveGlow. О том, как можно реализовать модель WaveGlow, рассказывается в статье под названием «WaveGlow: A Flow-Based Generative Network For Speech Synthesis», опубликованной 31 октября 2019 года под авторством Prenger и др., содержимое которой полностью включено в настоящий документ по ссылке.[21] The developers of this technology realized that flow-based models could be successfully used to synthesize waveforms in parallel with fidelity comparable to autoregressive models. Such flow-based vocoders include the WaveGlow model. How the WaveGlow model can be implemented is described in the paper entitled “WaveGlow: A Flow-Based Generative Network For Speech Synthesis,” published on October 31, 2019, by Prenger et al., the contents of which are incorporated herein in their entirety by reference.

[22] Вообще говоря, вокодер WaveGlow содержит последовательность двудольных потоковых этапов. Каждый потоковый этап состоит из обратимой свертки 1×1, за которой следует условный слой аффинной связи. Вокодер WaveGlow обусловливается мел-спектрограммами с повышенной дискретизацией через слои аффинной связи с блоками WaveNet. О том, как можно реализовать блок WaveNet, рассказывается в статье под названием «Wavenet: A Generative Model For Raw Audio», опубликованной 19 сентября 2016 года под авторством Aäron van den Oord и др., содержимое которой полностью включено в настоящий документ по ссылке.[22] Generally speaking, a WaveGlow vocoder contains a sequence of bipartite streaming stages. Each flow stage consists of a 1x1 invertible convolution followed by a conditional affine link layer. The WaveGlow vocoder is driven by upsampled mel spectrograms through affine coupling layers to WaveNet blocks. How a WaveNet block can be implemented is described in the article entitled "Wavenet: A Generative Model For Raw Audio", published on September 19, 2016 by Aäron van den Oord et al., the contents of which are incorporated herein in their entirety by reference.

[23] В некоторых вариантах осуществления настоящей технологии разработчики настоящей технологии разработали сеть учитель-ученик, в которой модель учителя представляет собой вокодер WaveGlow, а модель ученика представляет собой вокодер прямого распространения, обучаемый для использования в приложениях синтеза речи вместо соответствующего вокодера WaveGlow.[23] In some embodiments of the present technology, the developers of the present technology have developed a teacher-student network in which the teacher model is a WaveGlow vocoder and the student model is a feedforward vocoder trained for use in speech synthesis applications in place of the corresponding WaveGlow vocoder.

[24] Чтобы обеспечить точное вычисление правдоподобия, архитектуры NF должны состоять из обратимых модулей, которые также поддерживают эффективное вычисление своего определителя Якоби. В последнее время было разработано большое количество таких модулей, в том числе авторегрессионные, двудольные, линейные и остаточные преобразования. Хотя некоторые модули более эффективны, чем другие, NF обычно уступают аналогам с прямым распространением с точки зрения времени вывода. В частности, авторегрессионные потоки используют медленную процедуру последовательной генерации, в то время как двудольные потоки могут требовать большого числа подмодулей с низкой выразительной силой. Более того, обратимость ограничивает размер карт активации между модулями, что приводит к возникновению узких мест и, следовательно, непрактично более глубоких моделей.[24] To enable accurate likelihood computation, NF architectures must consist of invertible modules that also support efficient computation of their Jacobian determinant. Recently, a large number of such modules have been developed, including autoregressive, bipartite, linear and residual transformations. Although some modules are more efficient than others, NFs are generally inferior to their direct propagation counterparts in terms of inference time. In particular, autoregressive streams use a slow sequential generation procedure, while bipartite streams may require a large number of submodules with low expressive power. Moreover, reversibility limits the size of activation maps between modules, leading to bottlenecks and hence impractical deeper models.

[25] Однако во многих практических приложениях явная оценка плотности может не потребоваться во время вывода. Как упоминалось ранее, разработчики настоящей технологии осознали, что обратимостью NF можно пожертвовать ради улучшения времени выполнения и потребления памяти. Разработчики осознали, что на стадии обучения можно извлечь выгоду из стабильного обучения с целью явного правдоподобия от NF, а при развертывании можно получить эффективный вывод из более компактных архитектур прямого распространения.[25] However, in many practical applications, explicit density estimation may not be necessary during inference. As mentioned earlier, the developers of this technology realized that the reversibility of NF could be sacrificed to improve execution time and memory consumption. Developers realized that the training stage can benefit from robust explicit likelihood learning from NF, and that in deployment, efficient inference can be obtained from more compact feedforward architectures.

Дистилляция знанийDistillation of knowledge

[26] В некоторых аспектах настоящей технологии разработчики изобрели процесс дистилляции знаний из предварительно обученных основанных на потоках моделей в компактные и более эффективные архитектуры прямого распространения без свойства обратимости архитектур NF.[26] In some aspects of the present technology, developers have invented a process for distilling knowledge from pre-trained flow-based models into compact and more efficient feed-forward architectures without the reversibility property of NF architectures.

[27] Дистилляция знаний представляет собой одну из самых популярных методик сжатия и ускорения для больших моделей и ансамблей нейронных сетей. Вообще говоря, идея дистилляции знаний состоит в обучении эффективного ученика на прогнозах, производимых учителем, требующим больших вычислительных ресурсов. Можно сказать, что раскрытая в данном документе методика дистилляции знаний устраняет вычислительную неэффективность основанных на потоках моделей и позволяет передавать знания от NF в сети прямого распространения, которые не обязательно должны быть обратимыми.[27] Knowledge distillation is one of the most popular compression and acceleration techniques for large models and ensembles of neural networks. Generally speaking, the idea of knowledge distillation is to train an efficient student on predictions produced by a computationally intensive teacher. It can be said that the knowledge distillation technique disclosed in this paper eliminates the computational inefficiency of flow-based models and allows knowledge to be transferred from NFs to feed-forward networks that do not necessarily need to be reversible.

[28] В по меньшей мере некоторых вариантах осуществления настоящей технологии разработаны способы обучения и структура ученика, которые позволяют осуществлять дистилляцию знаний из условных NF в модели прямого распространения с более быстрым выводом и/или меньшим потреблением памяти. Предполагается, что в по меньшей мере некоторых реализациях настоящей технологии раскрытые в данном документе процессы дистилляции могут привести к более быстрому выводу без заметной потери качества.[28] In at least some embodiments of the present technology, learning methods and learner structures are designed that allow the distillation of knowledge from conditional NFs into a feed-forward model with faster output and/or less memory consumption. It is believed that in at least some implementations of the present technology, the distillation processes disclosed herein may result in faster output without noticeable loss of quality.

Процедура дистилляцииDistillation procedure

[29] Со ссылкой на Фигуру 4 изображено представление сети 400 учитель-ученик, предусмотренной в некоторых вариантах осуществления настоящей технологии. Сеть 400 учитель-ученик содержит модель учителя, представляющую связанную с учителем часть 402 сети 400, и модель ученика, представляющую связанную с учеником часть 404 сети 400. Следует отметить, что представление сети 400, проиллюстрированное на Фигуре 4, является упрощенным представлением реальной сети учитель-ученик, которая может использоваться в различных реализациях настоящей технологии. О том, как можно реализовать сеть 400 учитель-ученик в некоторых вариантах осуществления настоящей технологии, рассказывается в статье под названием «Distilling the Knowledge from Normalizing Flows», которая приложена к настоящему документу.[29] Referring to Figure 4, a representation of a teacher-student network 400 provided in some embodiments of the present technology is depicted. The teacher-student network 400 includes a teacher model representing the teacher-related portion 402 of the network 400 and a student model representing the student-related portion 404 of the network 400. It should be noted that the representation of the network 400 illustrated in Figure 4 is a simplified representation of the actual teacher network. -student, which can be used in various implementations of this technology. How the teacher-student network 400 can be implemented in some embodiments of the present technology is described in the article entitled "Distilling the Knowledge from Normalizing Flows", which is attached hereto.

[30] Связанная с учителем часть 402 содержит блоки 412-1, 412-2,…, 412-3 и 412-4 потоковых этапов. Следует отметить, что блоки с 412-1 по 412-4 потоковых этапов являются обратимыми блоками. Следовательно, можно сказать, что связанная с учителем часть 402 представляет собой обратимую (основанную на потоке) модель. Связанная с учеником часть 404 содержит блоки 424-1,… и 414-2 прямого распространения. Следовательно, можно сказать, что связанная с учеником часть 404 представляет собой необратимую модель (прямого распространения).[30] The teacher associated portion 402 comprises flow stage blocks 412-1, 412-2,..., 412-3 and 412-4. It should be noted that blocks 412-1 to 412-4 of flow stages are reversible blocks. Therefore, the teacher-related portion 402 can be said to be a reversible (flow-based) model. The student-related portion 404 contains forward propagation blocks 424-1,... and 414-2. Therefore, it can be said that the student-related part 404 is an irreversible (forward propagation) model.

[31] Как в связанную с учителем часть 402, так и в связанную с учеником часть 404 вводят набор 410 входных данных, включающий в себя выборку 406 шума (входной шум) и контекстную информацию 408 (обусловливающий элемент). Разработчики настоящей технологии осознали, что использование одного и того же набора 410 входных данных для связанной с учителем части 402 и связанной с учеником части 404 позволяет обучать необратимую, с прямым распространением, модель ученика на основе обратимой, основанной на потоке модели учителя.[31] Both the teacher portion 402 and the student portion 404 are provided with an input data set 410 including a noise sample 406 (input noise) and context information 408 (conditioner). The developers of the present technology realized that using the same input data set 410 for the teacher portion 402 and the student portion 404 allows a non-reversible, feed-forward student model to be trained from a reversible, flow-based teacher model.

[32] Таким образом, набор 410 входных данных может использоваться связанной с учителем частью 402 для генерирования выводимой учителем выборки 422, а также связанной с учеником частью 404 для генерирования выводимой учеником выборки 424. Выводимая учителем выборка 422 и выводимая учеником выборка 424 могут использоваться для вычисления функции 460 потерь. В примере, проиллюстрированном на Фигуре 4, модель 450 извлечения признаков может использоваться для извлечения признаков из выводимой учителем выборки 422 и выводимой учеником выборки 424 для дальнейшего использования функцией 460 потерь.[32] Thus, input data set 410 may be used by teacher associated portion 402 to generate teacher output sample 422, as well as student associated portion 404 to generate student output sample 424. Teacher output sample 422 and student output sample 424 may be used to calculating the loss function 460. In the example illustrated in Figure 4, feature extraction model 450 may be used to extract features from teacher output sample 422 and student output sample 424 for further use by loss function 460.

[33] Теперь будет обсуждаться то, как связанная с учителем часть 402 и связанная с учеником часть 404 могут быть спроектированы специалистом в данной области техники, ознакомившимся с изложенными в данном документе принципами. Однако для формирования сети учитель-ученик, имеющей основанную на потоке модель учителя и модель ученика прямого распространения, могут использоваться другие архитектуры, помимо тех, которые не исчерпывающим образом описаны в данном документе.[33] How the teacher associated portion 402 and the student associated portion 404 may be designed by one skilled in the art familiar with the principles set forth herein will now be discussed. However, architectures other than those not exhaustively described herein may be used to form a teacher-student network having a flow-based teacher model and a feedforward student model.

Структура учителяTeacher structure

[34] Связанная с учителем часть 402 может быть реализована в форме предварительно обученной основанной на условном потоке модели, которая определяет детерминированное биективное отображение из выборки шума и контекстной информации в выходную выборку Разработчики настоящей технологии поняли, что это отображение может быть аппроксимировано более эффективной моделью, контролируемым образом, с использованием целевой функции потерь. В частности, комбинация потерь «восстановления» и потерь «признаков» может использоваться функцией 460 потерь. В некоторых реализациях функция 460 потерь во время обучения может быть определена как:[34] The teacher portion 402 may be implemented in the form of a pre-trained conditional flow-based model that determines a deterministic bijective mapping from the sample noise and context information to the output sample The developers of the present technology realized that this mapping could be approximated by a more efficient model in a controlled manner using an objective loss function. In particular, a combination of "recovery" losses and "feature" losses may be used by loss function 460. In some implementations, the training loss function 460 may be defined as:

где представляет собой гиперпараметр, который может быть использован для балансировки соответствующих членов потерь. Предполагается, что комбинация потерь восстановления и потерь признаков может использоваться для ряда приложений, таких как приложения синтеза речи и приложения суперразрешения.Where represents a hyperparameter that can be used to balance the corresponding loss terms. It is envisaged that a combination of reconstruction loss and feature loss can be used for a number of applications, such as speech synthesis applications and super-resolution applications.

[35] Для потери восстановления можно использовать, например, среднюю L1-норму между связанной с учеником выборкой и связанной с учителем выборкой:[35] For the recovery loss, one can use, for example, the average L1-norm between the student-related sample and the teacher-related sample:

где и соответствуют, соответственно, моделям учителя и ученика из сети 400 учитель-ученик.Where And correspond, respectively, to the teacher and student models from the teacher-student network 400.

[36] Для потери признаков может использоваться, например, расстояние между набором представлений признаков сгенерированных выборок.[36] For feature loss, for example, the distance between the set of feature representations of the generated samples can be used.

[37] В тех реализациях, где сеть 400 учитель-ученик должна использоваться для приложений SR, как например во время дистилляции модели SRFlow, потеря признаков может в качестве примера представлять собой перцептивное расстояние между генерируемыми изображениями, которое вычисляется с помощью метрики обученной перцептивной схожести фрагментов изображений (LPIPS). Модель 450 извлечения признаков может быть реализована как предварительно обученная модель VGG16 (модель сверточной нейронной сети) для вычисления LPIPS. В этом случае перцептивную потерю можно определить следующим образом:[37] In implementations where the teacher-student network 400 is to be used for SR applications, such as during distillation of the SRFlow model, the feature loss can be an example of the perceptual distance between the generated images, which is calculated using the trained perceptual similarity metric of fragments images (LPIPS). The feature extraction model 450 may be implemented as a pre-trained model VGG16 (convolutional neural network model) for computing LPIPS. In this case, the perceptual loss can be defined as follows:

[38] В тех реализациях, где сеть 400 учитель-ученик должна использоваться для приложений синтеза речи, таких как дистилляция модели WaveGlow, в качестве примера может использоваться потеря на основе кратковременного преобразования Фурье (STFT) с несколькими разрешениями, которая представляет собой сумму потерь на основе STFT с различными параметрами анализа (т.е. размер FFT, размер окна и сдвиг кадра).[38] In implementations where the teacher-student network 400 is to be used for speech synthesis applications such as WaveGlow model distillation, an example would be the multi-resolution short-time Fourier transform (STFT) loss, which is the sum of the losses per based on STFT with different analysis parameters (i.e. FFT size, window size and frame shift).

[39] Например, одна потеря на основе STFT может представлять собой сумму члена спектральной конвергенции () и члена логарифмической абсолютной величины STFT (). Потеря на основе STFT с несколькими разрешениями для разрешений может быть определена как:[39] For example, one STFT-based loss could be the sum of the spectral convergence term ( ) and the logarithmic absolute value term STFT ( ). Multi-resolution STFT-based loss for permissions can be defined as:

где и соответственно обозначают нормы Фробениуса и L1, а обозначает абсолютные величины STFT.Where And denote the Frobenius and L1 norms respectively, and denotes the absolute values of STFT.

[40] Разработчики настоящей технологии осознали, что после процесса дистилляции модели учеников прямого распространения способны извлекать выборки из скрытого распределения основанной на потоке модели учителя, и это позволяет им генерировать различные выходные выборки для определенных входных данных и/или использовать скрытую геометрию для выполнения операций редактирования.[40] The developers of the present technology realized that after the distillation process, feedforward student models are able to extract samples from the latent distribution of the flow-based teacher model, and this allows them to generate different output samples for certain inputs and/or use latent geometry to perform editing operations .

Структура ученикаStudent Structure

[41] Со ссылкой на Фигуру 5 изображено представление первой архитектуры 502 ученика, которая может использоваться для приложений SR. Например, первая архитектура 502 ученика может использоваться для проектирования модели ученика SRFlow во время дистилляции модели учителя SRFlow. Однако следует отметить, что другие архитектуры для моделей ученика и учителя могут использоваться в других реализациях для приложений SR, не выходя за рамки настоящей технологии.[41] Referring to Figure 5, depicts a representation of a first learner architecture 502 that can be used for SR applications. For example, the first student architecture 502 may be used to design the SRFlow student model while distilling the SRFlow teacher model. However, it should be noted that other architectures for student and teacher models may be used in other implementations for SR applications without going beyond the scope of the present technology.

[42] Вообще говоря, модель ученика SRFlow состоит из L уровней. На каждом уровне активации с предыдущего уровня конкатенируются с соответствующим вектором шума и представлением LR и пропускаются через последовательность блоков RRDB. Затем применяются переходный этап и операция разжатия (unsqueeze). Операция разжатия удваивает пространственное разрешение карт признаков и уменьшает размерность их каналов в 4 раза.[42] Generally speaking, the SRFlow learner model consists of L layers. At each level, activations from the previous level are concatenated with the corresponding vector noise and LR representation and are passed through a sequence of RRDB blocks. Then the transition stage and the unqueeze operation are applied. The decompression operation doubles the spatial resolution of feature maps and reduces the dimension of their channels by 4 times.

[43] На Фигуре 5 также проиллюстрировано представление второй архитектуры 504 ученика, которая может использоваться для приложений синтеза речи. Например, вторая архитектура 502 ученика может использоваться для проектирования модели ученика WaveGlow во время дистилляции модели учителя WaveGlow. Однако следует отметить, что другие архитектуры для моделей ученика и учителя могут использоваться в других реализациях для приложений синтеза речи, не выходя за рамки настоящей технологии.[43] Figure 5 also illustrates a representation of a second learner architecture 504 that can be used for speech synthesis applications. For example, a second student architecture 502 may be used to design a WaveGlow student model while distilling a WaveGlow teacher model. However, it should be noted that other architectures for student and teacher models may be used in other implementations for speech synthesis applications without departing from the scope of the present technology.

[44] Вообще говоря, модель ученика WaveGlow представляет собой последовательность условных блоков WaveNet. Каждый блок WaveNet организован в несколько остаточных слоев, каждый из которых состоит из расширенной (dilated) свертки, за которой следует блок управляемой активации и свертка 1×1. Мел-спектрограммы с повышенной дискретизацией добавляются к промежуточным активациям перед блоком управляемой активации. В отличие от модели учителя WaveGlow, модель ученика WaveGlow не вводит шум между промежуточными блоками WaveNet, а получает z в самом начале.[44] Generally speaking, a WaveGlow learner model is a sequence of WaveNet conditional blocks. Each WaveNet block is organized into several residual layers, each of which consists of a dilated convolution, followed by a guided activation block and a 1x1 convolution. Upsampled chalk spectrograms are added to the intermediate activations before the guided activation block. Unlike the WaveGlow teacher model, the WaveGlow student model does not introduce noise between the WaveNet intermediate blocks, but instead receives z at the very beginning.

[45] Как упоминалось выше, независимо от конкретной реализации основанной на потоке модели учителя и модели ученика прямого распространения, разработчики настоящей технологии разработали сеть учитель-ученик, в которой архитектура ученика в некотором смысле «жертвует» обратимостью архитектуры учителя в обмен на более компактную и эффективную модель. Архитектура модели ученика (такая как первая архитектура 502 ученика и вторая архитектура 504 ученика) может обладать некоторыми сходствами с архитектурой, соответствующей основанной на потоке модели учителя, однако, в некоторых реализациях настоящей технологии, могут присутствовать заметные различия.[45] As mentioned above, regardless of the specific implementation of the flow-based teacher model and feed-forward student model, the developers of the present technology have designed a teacher-student network in which the student architecture in some sense “sacrifices” the reversibility of the teacher architecture in exchange for a more compact and effective model. The architecture of the student model (such as the first student architecture 502 and the second student architecture 504) may have some similarities with the architecture corresponding to the flow-based teacher model, however, in some implementations of the present technology, there may be noticeable differences.

[46] Во-первых, в отличие от основанной на потоке модели учителя, слои ученика могут быть организованы в обратном порядке, поскольку модель ученика может представлять «обратный проход» (последовательность блоков) учителя.[46] First, unlike the flow-based teacher model, the student layers can be organized in reverse order, since the student model can represent the "backward pass" (sequence of blocks) of the teacher.

[47] Во-вторых, потоковые слои заменяются широко используемыми модулями прямого распространения для соответствующих задач. В тех реализациях, где сеть 400 учитель-ученик должна использоваться для приложений SR, как, например, во время дистилляции модели SRFlow, потоковые этапы модели учителя SRFlow могут в качестве примера заменяться собранными в пачку RRDB в соответствующей модели ученика SRFlow. В тех реализациях, где сеть 400 учитель-ученик должна использоваться для приложений синтеза речи, как, например, во время дистилляции модели WaveGlow, потоковые этапы модели учителя WaveGlow могут в качестве примера заменяться блоками WaveNet в модели ученика WaveGlow.[47] Second, stream layers are replaced by widely used feedforward modules for their respective tasks. In those implementations where the teacher-student network 400 is to be used for SR applications, such as during distillation of an SRFlow model, the flow stages of the SRFlow teacher model may, by way of example, be replaced by bundled RRDBs in the corresponding SRFlow student model. In those implementations where the teacher-student network 400 is to be used for speech synthesis applications, such as during distillation of the WaveGlow model, the flow stages of the WaveGlow teacher model can be replaced by WaveNet blocks in the WaveGlow student model, as an example.

[48] В-третьих, поскольку модель ученика прямого распространения больше не должна быть обратимой, число скрытых каналов между модулями модели ученика может меняться. Изменение числа скрытых каналов может сократить число узких мест в модели ученика прямого распространения. Разработчики настоящей технологии поняли, что для таких архитектур учеников может требоваться меньшее количество блоков, чем для соответствующей архитектуры учителя, для достижения аналогичной производительности.[48] Third, since the feedforward learner model no longer needs to be invertible, the number of covert channels between modules of the learner model can change. Changing the number of covert channels can reduce the number of bottlenecks in the feedforward learner model. The developers of the present technology realized that such student architectures may require fewer blocks than the corresponding teacher architecture to achieve similar performance.

[49] В-четвертых, в моделях условных NF контекстная информация постоянно вводится через условные потоковые слои. После замены этих слоев эту информацию в сеть необходимо вводить. В тех реализациях, где сеть 400 учитель-ученик должна использоваться для приложений SR, как, например, во время дистилляции модели SRFlow, кодирования LR в модели ученика SRFlow могут в качестве примера конкатенироваться с промежуточными активациями в начале каждого уровня. В тех реализациях, где сеть 400 учитель-ученик должна использоваться для приложений синтеза речи, как например во время дистилляции модели WaveGlow, модель ученика WaveGlow может сохранять свой изначальный обусловливающий механизм через блоки WaveNet.[49] Fourth, in conditional NF models, contextual information is continuously input through conditional flow layers. After replacing these layers, this information must be entered into the network. In those implementations where the teacher-student network 400 is to be used for SR applications, such as during distillation of the SRFlow model, the LR encodings in the SRFlow student model may, by way of example, be concatenated with intermediate activations at the beginning of each level. In those implementations where the teacher-student network 400 is to be used for speech synthesis applications, such as during WaveGlow model distillation, the WaveGlow student model can retain its original conditioning mechanism through WaveNet blocks.

[50] В первом широком аспекте настоящей технологии обеспечен способ генерирования волновой формы на основе спектрограммы и входного шума. Спектрограмма была сгенерирована на основе текста. Волновая форма является цифровым аудио представлением текста. Способ является исполняемым посредством сервера. Способ содержит получение сервером обученного основанного на потоке вокодера, включающего в себя множество обратимых блоков. Обученный основанный на потоке вокодер был обучен генерировать волновую форму на основе спектрограммы и входного шума. Способ содержит получение сервером необученного вокодера прямого распространения, включающего в себя множество необратимых блоков. Причем обученный основанный на потоке вокодер и необученный вокодер прямого распространения образуют сеть учитель-ученик. Способ содержит выполнение процесса обучения в сети учитель-ученик. Во время определенной итерации обучения процесса обучения способ содержит: генерирование сервером связанной с учителем волновой формы посредством обученного основанного на потоке вокодера с использованием первой спектрограммы и первого входного шума, генерирование сервером связанной с учеником волновой формы посредством необученного вокодера прямого распространения с использованием первой спектрограммы и первого входного шума, генерирование сервером значения потерь для данной итерации обучения с использованием связанной с учителем волновой формы и связанной с учеником волновой формы, и обучение сервером необученного вокодера прямого распространения генерировать волновую форму с использованием значения потерь для аппроксимации отображения между первым входным шумом и связанной с учителем волновой формы основанного на потоке вокодера. Способ содержит получение сервером спектрограммы и входного шума. Способ содержит использование сервером обученного вокодера прямого распространения вместо обученного основанного на потоке вокодера для генерирования волновой формы на основе спектрограммы и входного шума.[50] In a first broad aspect of the present technology, a method for generating a waveform based on a spectrogram and input noise is provided. The spectrogram was generated from the text. A waveform is a digital audio representation of text. The method is executable via a server. The method comprises receiving by a server a trained flow-based vocoder including a plurality of reversible blocks. The trained flow-based vocoder was trained to generate a waveform based on the spectrogram and input noise. The method comprises receiving by the server an untrained forward propagation vocoder including a plurality of irreversible blocks. Moreover, the trained flow-based vocoder and the untrained feedforward vocoder form a teacher-student network. The method comprises performing a learning process in a teacher-student network. During a particular training iteration of the learning process, the method comprises: the server generating a teacher-related waveform via a trained flow-based vocoder using a first spectrogram and a first input noise, the server generating a student-related waveform via an untrained feed-forward vocoder using the first spectrogram and a first input noise. input noise, the server generating a loss value for a given training iteration using the teacher-related waveform and the student-related waveform, and training the server to generate an untrained feedforward vocoder to generate a waveform using the loss value to approximate the mapping between the first input noise and the teacher-related waveform. waveform of a stream-based vocoder. The method comprises receiving a spectrogram and input noise by the server. The method comprises using a server to use a trained forward propagation vocoder instead of a trained flow-based vocoder to generate a waveform based on a spectrogram and input noise.

[51] В некоторых вариантах осуществления способа спектрограмма представляет собой мел-масштабированную спектрограмму.[51] In some embodiments of the method, the spectrogram is a chalk-scaled spectrogram.

[52] В некоторых вариантах осуществления способа входной шум представляет собой нормальное распределение значений шума.[52] In some embodiments of the method, the input noise is a normal distribution of noise values.

[53] В некоторых вариантах осуществления способа способ дополнительно содержит сохранение сервером обученного вокодера прямого распространения в хранилище.[53] In some embodiments of the method, the method further comprises storing the trained feedforward vocoder by the server in storage.

[54] В некоторых вариантах осуществления способа значение потерь представляет собой комбинацию значения основанных на восстановлении потерь и значения основанных на признаках потерь, при этом значение основанных на восстановлении потерь представляет различие между связанной с учителем волновой формой и связанной с учеником волновой формой, а значение основанных на признаках потерь представляет различие между признаками связанной с учителем волновой формы и признаками связанной с учеником волновой формы.[54] In some embodiments of the method, the loss value is a combination of a recovery-based loss value and a feature-based loss value, wherein the recovery-based loss value represents the difference between a teacher-related waveform and a student-related waveform, and the value-based loss on loss features represents the difference between teacher-related waveform features and student-related waveform features.

[55] В некоторых вариантах осуществления способа обученный основанный на потоке вокодер представляет собой основанный на условном нормализующем потоке вокодер.[55] In some embodiments of the method, the trained flow-based vocoder is a conditional flow-normalizing vocoder.

[56] В некоторых вариантах осуществления способа обученный вокодер прямого распространения представляет собой основанный на сверточной нейронной сети (CNN) вокодер.[56] In some embodiments of the method, the trained feedforward vocoder is a convolutional neural network (CNN)-based vocoder.

[57] Во втором широком аспекте настоящей технологии обеспечен способ генерирования выходных данных с использованием входных обусловливающих данных и входного шума. Способ является исполняемым посредством сервера. Способ содержит получение сервером обученной основанной на условном потоке модели, включающей в себя множество обратимых блоков, причем обученная основанная на условном потоке модель была обучена генерировать выходные данные на основе входных обусловливающих данных и входного шума. Способ содержит получение сервером необученной модели прямого распространения, включающей в себя множество необратимых блоков, при этом обученная основанная на условном потоке модель и необученная модель прямого распространения образуют сеть учитель-ученик. Способ содержит выполнение процесса обучения в сети учитель-ученик. Во время определенной итерации обучения процесса обучения способ содержит: генерирование сервером связанных с учителем выходных данных посредством обученной основанной на условном потоке модели с использованием первых входных обусловливающих данных и первого входного шума, генерирование сервером связанных с учеником выходных данных посредством необученной модели прямого распространения с использованием первых входных обусловливающих данных и первого входного шума, генерирование сервером значения потерь для данной итерации обучения с использованием связанных с учителем выходных данных и связанных с учеником выходных данных, и обучение сервером необученной модели прямого распространения посредством использования значения потерь для аппроксимации отображения между первым входным шумом и связанными с учителем выходными данными основанной на условном потоке модели. Способ содержит получение сервером входных обусловливающих данных и входного шума. Способ содержит использование сервером обученной модели прямого распространения вместо обученной основанной на условном потоке модели для генерирования выходных данных на основе входных обусловливающих данных и входного шума.[57] In a second broad aspect of the present technology, a method is provided for generating output data using input conditioning data and input noise. The method is executable via a server. The method comprises receiving by a server a trained conditional flow-based model including a plurality of invertible blocks, wherein the trained conditional flow-based model has been trained to generate output based on input conditioning data and input noise. The method comprises receiving by the server an untrained feedforward model including a plurality of irreversible blocks, wherein the trained conditional flow-based model and the untrained feedforward model form a teacher-student network. The method comprises performing a learning process in a teacher-student network. During a particular training iteration of the learning process, the method comprises: the server generating teacher-related outputs through a trained conditional flow-based model using the first input conditioning data and the first noise input, the server generating student-related outputs through an untrained feedforward model using the first input conditioning data and the first input noise, the server generating a loss value for a given training iteration using the teacher-related output and the student-related output, and the server training an untrained feedforward model by using the loss value to approximate the mapping between the first input noise and the associated with the supervised output of a conditional flow-based model. The method includes the server receiving input conditioning data and input noise. The method comprises using the server to use a trained feedforward model instead of a trained conditional flow-based model to generate output data based on input conditioning data and input noise.

[58] В некоторых вариантах осуществления способа обученная основанная на условном потоке модель представляет собой обученный основанный на условном потоке вокодер, при этом обученная модель прямого распространения представляет собой обученный вокодер прямого распространения, причем входные обусловливающие данные представляют собой спектрограмму, а выходные данные представляют собой волновую форму.[58] In some embodiments of the method, the trained conditional flow-based model is a trained conditional flow-based vocoder, wherein the trained feedforward model is a trained feedforward vocoder, wherein the input conditioning data is a spectrogram and the output data is a waveform. form.

[59] В некоторых вариантах осуществления способа обученная основанная на условном потоке модель представляет собой обученную основанную на условном потоке модель улучшения изображения, при этом обученная модель прямого распространения представляет собой обученную модель улучшения изображения прямого распространения, причем входные обусловливающие данные представляют собой первое изображение, выходные данные представляют собой второе изображение, причем второе изображение имеет более высокое разрешение, чем первое изображение.[59] In some embodiments of the method, the trained conditional flow-based model is a trained conditional flow-based image enhancement model, wherein the trained forward propagation model is a trained forward propagation image enhancement model, wherein the input conditioning data is a first image, the output the data is a second image, the second image having a higher resolution than the first image.

[60] В третьем широком аспекте настоящей технологии обеспечен сервер генерирования волновой формы на основе спектрограммы и входного шума. Спектрограмма была сгенерирована на основе текста. Волновая форма является цифровым аудио представлением текста. Сервер выполнен с возможностью получения обученного основанного на потоке вокодера, включающего в себя множество обратимых блоков, причем обученный основанный на потоке вокодер был обучен генерировать волновую форму на основе спектрограммы и входного шума. Сервер выполнен с возможностью получения необученного вокодера прямого распространения, включающего в себя множество необратимых блоков, причем обученный основанный на потоке вокодер и необученный вокодер прямого распространения образуют сеть учитель-ученик. Сервер выполнен с возможностью выполнения процесса обучения в сети учитель-ученик. Во время определенной итерации обучения процесса обучения сервер выполнен с возможностью: генерирования связанной с учителем волновой формы посредством обученного основанного на потоке вокодера с использованием первой спектрограммы и первого входного шума, генерирования связанной с учеником волновой формы посредством необученного вокодера прямого распространения с использованием первой спектрограммы и первого входного шума, генерирования значения потерь для данной итерации обучения с использованием связанной с учителем волновой формы и связанной с учеником волновой формы, и обучения необученного вокодера прямого распространения генерировать волновую форму с использованием значения потерь для аппроксимации отображения между первым входным шумом и связанной с учителем волновой формы основанного на потоке вокодера. Сервер выполнен с возможностью получения спектрограммы и входного шума. Сервер выполнен с возможностью использования обученного вокодера прямого распространения вместо обученного основанного на потоке вокодера для генерирования волновой формы на основе спектрограммы и входного шума.[60] In a third broad aspect of the present technology, a waveform generation server is provided based on a spectrogram and input noise. The spectrogram was generated from the text. A waveform is a digital audio representation of text. The server is configured to receive a trained flow-based vocoder including a plurality of reversible blocks, wherein the trained flow-based vocoder has been trained to generate a waveform based on a spectrogram and input noise. The server is configured to receive an untrained feedforward vocoder including a plurality of irreversible blocks, wherein the trained flow-based vocoder and the untrained feedforward vocoder form a teacher-student network. The server is configured to carry out the learning process in a teacher-student network. During a particular training iteration of the learning process, the server is configured to: generate a teacher-related waveform through a trained flow-based vocoder using the first spectrogram and a first input noise, generate a student-related waveform through an untrained feedforward vocoder using the first spectrogram and the first input noise, generating a loss value for a given training iteration using the teacher-related waveform and the student-related waveform, and training the untrained feedforward vocoder to generate a waveform using the loss value to approximate the mapping between the first input noise and the teacher-related waveform stream-based vocoder. The server is configured to receive a spectrogram and input noise. The server is configured to use a trained feedforward vocoder instead of a trained flow-based vocoder to generate a waveform based on the spectrogram and input noise.

[61] В некоторых вариантах осуществления сервера спектрограмма представляет собой мел-масштабированную спектрограмму.[61] In some server embodiments, the spectrogram is a chalk-scaled spectrogram.

[62] В некоторых вариантах осуществления сервера входной шум представляет собой нормальное распределение значений шума.[62] In some server embodiments, the input noise is a normal distribution of noise values.

[63] В некоторых вариантах осуществления сервера сервер дополнительно выполнен с возможностью сохранения обученного вокодера прямого распространения в хранилище.[63] In some server embodiments, the server is further configured to store the trained feedforward vocoder in storage.

[64] В некоторых вариантах осуществления сервера значение потерь представляет собой комбинацию значения основанных на восстановлении потерь и значения основанных на признаках потерь, при этом значение основанных на восстановлении потерь представляет различие между связанной с учителем волновой формой и связанной с учеником волновой формой, а значение основанных на признаках потерь представляет различие между признаками связанной с учителем волновой формы и признаками связанной с учеником волновой формы.[64] In some server embodiments, the loss value is a combination of a recovery-based loss value and a feature-based loss value, wherein the recovery-based loss value represents the difference between a teacher-related waveform and a student-related waveform, and the value-based on loss features represents the difference between teacher-related waveform features and student-related waveform features.

[65] В некоторых вариантах осуществления сервера обученный основанный на потоке вокодер представляет собой основанный на условном нормализующем потоке вокодер.[65] In some server embodiments, the trained flow-based vocoder is a conditional flow-normalizing vocoder.

[66] В некоторых вариантах осуществления сервера обученный вокодер прямого распространения представляет собой основанный на сверточной нейронной сети (CNN) вокодер.[66] In some server embodiments, the trained feedforward vocoder is a convolutional neural network (CNN)-based vocoder.

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

[68] В контексте настоящего описания «устройство» представляет собой любое компьютерное аппаратное обеспечение, которое способно выполнять программное обеспечение, подходящее для соответствующей решаемой задачи. Таким образом, некоторые (неограничивающие) примеры устройств включают в себя персональные компьютеры (настольные ПК, ноутбуки, нетбуки и т.д.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует отметить, что устройству, действующему как устройство в данном контексте, не запрещается действовать как сервер для других устройств. Использование термина «устройство» не исключает использования многочисленных устройств при приеме/отправке, выполнении или вызове выполнения какой-либо задачи или запроса, или последствий любой задачи или запроса, или этапов любого описанного в данном документе способа.[68] As used herein, a “device” is any computer hardware that is capable of executing software suitable for the relevant task at hand. Thus, some (non-limiting) examples of devices include personal computers (desktops, laptops, netbooks, etc.), smartphones and tablets, and network equipment such as routers, switches, and gateways. It should be noted that a device acting as a device in a given context is not prohibited from acting as a server for other devices. The use of the term "device" does not exclude the use of multiple devices in receiving/sending, performing or causing any task or request to be performed, or the consequences of any task or request, or the steps of any method described herein.

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

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

[71] В контексте настоящего описания, если специально не указано иное, подразумевается, что термин «компонент» включает в себя программное обеспечение (соответствующее конкретному аппаратному контексту), которое является как необходимым, так и достаточным для реализации конкретной функции (функций), на которую ссылаются.[71] As used herein, unless specifically stated otherwise, the term "component" is intended to include software (corresponding to a particular hardware context) that is both necessary and sufficient to implement the particular function(s) on which is referred to.

[72] В контексте настоящего описания предполагается, что выражение «используемый компьютером носитель хранения информации» включает в себя носители любого характера и вида, в том числе RAM, ROM, диски (CD-ROM, DVD, дискеты, накопители на жестких дисках и т.д.), USB-ключи, твердотельные накопители, ленточные накопители и т.д.[72] As used herein, the term “computer-usable storage medium” is intended to include media of any nature or kind, including RAM, ROM, disks (CD-ROM, DVD, floppy disks, hard disk drives, etc.) .etc.), USB keys, solid state drives, tape drives, etc.

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

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

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

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

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

[77] Фигура 1 иллюстрирует систему, подходящую для реализации неограничивающих вариантов осуществления настоящей технологии.[77] Figure 1 illustrates a system suitable for implementing non-limiting embodiments of the present technology.

[78] Фигура 2 иллюстрирует представление механизма генерирования речи, размещенного на сервере с Фигуры 1, как это предусмотрено в некоторых реализациях настоящей технологии.[78] Figure 2 illustrates a representation of a speech generation engine hosted on the server of Figure 1, as provided in some implementations of the present technology.

[79] Фигура 3 иллюстрирует представление механизма генерирования изображения, размещенного на сервере, как это предусмотрено в некоторых реализациях настоящей технологии.[79] Figure 3 illustrates a representation of a server-hosted image generation engine, as provided in some implementations of the present technology.

[80] Фигура 4 иллюстрирует представление сети учитель-ученик, размещенной на сервере, как это предусмотрено в некоторых вариантах осуществления настоящей технологии.[80] Figure 4 illustrates a representation of a teacher-student network hosted on a server, as provided in some embodiments of the present technology.

[81] Фигура 5 иллюстрирует представление первой архитектуры ученика, которая используется механизмом генерирования речи, и второй архитектуры ученика, которая используется механизмом генерирования изображения, как это предусмотрено в некоторых реализациях настоящей технологии.[81] Figure 5 illustrates a representation of a first learner architecture that is used by a speech generation engine and a second learner architecture that is used by an image generation engine, as provided in some implementations of the present technology.

[82] Фигура 6 иллюстрирует итерацию обучения модели ученика на основе модели учителя из сети учитель-ученик, как это предусмотрено в некоторых реализациях настоящей технологии.[82] Figure 6 illustrates an iteration of training a student model based on a teacher model from a teacher-student network, as provided in some implementations of the present technology.

[83] Фигура 7 представляет собой схематичное представление способа, исполняемого сервером, в соответствии с по меньшей мере некоторыми неограничивающими вариантами осуществления настоящей технологии.[83] Figure 7 is a schematic representation of a method executed by a server, in accordance with at least some non-limiting embodiments of the present technology.

[84] Приложение A представлено в конце настоящего описания. Приложение A включает в себя копию еще не опубликованной статьи под названием «Distilling the Knowledge from Normalizing Flows». В этой статье приводится дополнительная информация об уровне техники, описание реализаций неограничивающих вариантов осуществления настоящей технологии, а также некоторые дополнительные примеры. Данная статья полностью включена в настоящий документ посредством ссылки во всех тех юрисдикциях, где такое включение по ссылке разрешено.[84] Appendix A is provided at the end of this specification. Appendix A includes a copy of a not-yet-published article entitled "Distilling the Knowledge from Normalizing Flows." This article provides additional background information, descriptions of implementations of non-limiting embodiments of the present technology, and some additional examples. This article is incorporated herein by reference in its entirety in all jurisdictions where such incorporation by reference is permitted.

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

[85] Со ссылкой на Фигуру 1 проиллюстрировано схематичное представление системы 100, причем система 100 подходит для реализации неограничивающих вариантов осуществления настоящей технологии. Следует четко понимать, что изображенная система 100 является лишь иллюстративной реализацией настоящей технологии. Таким образом, нижеследующее описание предназначено лишь для того, чтобы использоваться в качестве описания иллюстративных примеров настоящей технологии. Это описание не предназначено для определения объема или установления границ настоящей технологии. В некоторых случаях то, что считается полезными примерами модификаций системы 100, также может быть изложено ниже. Это делается просто для помощи в понимании и, опять же, не для определения объема или установления границ настоящей технологии.[85] With reference to Figure 1, a schematic representation of a system 100 is illustrated, the system 100 being suitable for implementing non-limiting embodiments of the present technology. It should be clearly understood that the illustrated system 100 is only an illustrative implementation of the present technology. Therefore, the following description is intended only to be used as a description of illustrative examples of the present technology. This description is not intended to define the scope or boundaries of this technology. In some cases, what are considered useful examples of modifications to the system 100 may also be set forth below. This is simply to aid understanding and, again, not to define the scope or set the boundaries of the present technology.

[86] Эти модификации не являются исчерпывающим списком и, как будет понятно специалисту в данной области техники, возможны другие модификации. Кроме того, те случаи, когда этого не было сделано (т.е. когда не было представлено примеров модификаций), не следует интерпретировать так, что никакие модификации не являются возможными и/или что описанное является единственным способом реализации такого элемента в настоящей технологии. Специалисту в данной области будет понятно, что это, вероятно, не так. Кроме того, следует понимать, что в некоторых случаях система 100 может предоставлять простые реализации настоящей технологии, и что в таких случаях они представлены для помощи в понимании. Специалисты в данной области поймут, что различные реализации настоящей технологии могут иметь большую сложность.[86] These modifications are not an exhaustive list and, as one skilled in the art will appreciate, other modifications are possible. In addition, those cases where this has not been done (i.e., where no examples of modifications have been provided) should not be interpreted to mean that no modifications are possible and/or that what is described is the only way to implement such an element in the present technology. One skilled in the art will appreciate that this is probably not the case. In addition, it should be understood that in some cases the system 100 may provide simple implementations of the present technology, and that in such cases they are presented to aid understanding. Those skilled in the art will appreciate that various implementations of the present technology can be highly complex.

[87] Вообще говоря, система 100 выполнена с возможностью обеспечения визуальных и/или звуковых указаний пользователю 102. Например, звуковое указание 152 (речевые высказывания или «генерируемые машиной высказывания») может быть обеспечено электронным устройством 104 (или просто «устройством 104») пользователю 102. В другом примере визуальное указание 154 (визуальное представление цифрового изображения или «сгенерированного машиной» цифрового изображения) может быть обеспечено устройством 104 пользователю 102. Различные компоненты системы 100 и то, как эти компоненты могут быть сконфигурированы для обеспечения звукового указания 152 и визуального указания 154, теперь будут описаны по очереди.[87] Generally speaking, system 100 is configured to provide visual and/or audio guidance to user 102. For example, audio guidance 152 (speech utterances or "machine-generated utterances") may be provided by electronic device 104 (or simply "device 104"). to user 102. In another example, visual guidance 154 (a visual representation of a digital image or "machine-generated" digital image) may be provided by device 104 to user 102. Various components of system 100 and how those components may be configured to provide audio guidance 152 and visual instructions 154 will now be described in turn.

Пользовательское устройствоUser device

[88] Как упоминалось ранее, система 100 содержит устройство 104. Реализация устройства 104 конкретным образом не ограничена, но, в качестве примера, устройство 104 может быть реализовано как персональный компьютер (настольные компьютеры, ноутбуки, нетбуки и т.д.), устройство беспроводной связи (например, смартфон, сотовый телефон, планшет, умная колонка и подобное), а также сетевое оборудование (например, маршрутизаторы, коммутаторы и шлюзы). Как таковое, устройство 104 иногда может именоваться «электронным устройством», «конечным пользовательским устройством», «клиентским электронным устройством» или просто «устройством». Следует отметить, что тот факт, что устройство 104 связано с пользователем 102, не обязательно предполагает или подразумевает какой-либо режим работы - например необходимость входа в систему, необходимость регистрации или тому подобное.[88] As mentioned previously, the system 100 includes a device 104. The implementation of the device 104 is not particularly limited, but, as an example, the device 104 may be implemented as a personal computer (desktops, laptops, netbooks, etc.), device wireless communications (such as smartphones, cell phones, tablets, smart speakers, and the like); and networking equipment (such as routers, switches, and gateways). As such, device 104 may sometimes be referred to as an “electronic device,” an “end user device,” a “client electronic device,” or simply a “device.” It should be noted that the fact that the device 104 is associated with the user 102 does not necessarily suggest or imply any mode of operation - for example, the need to log in, the need to register, or the like.

[89] Предполагается, что устройство 104 содержит аппаратное обеспечение и/или программное обеспечение и/или микропрограммное обеспечение (или их комбинацию), как известно в данной области техники, для обеспечения или воспроизведения звукового указания 152. Например, устройство 104 может содержать один или более микрофонов для обнаружения или захвата звука и один или более динамиков для обеспечения или воспроизведения звукового указания 152.[89] Device 104 is contemplated to include hardware and/or software and/or firmware (or a combination thereof), as is known in the art, for providing or reproducing audio guidance 152. For example, device 104 may include one or more microphones for detecting or capturing sound and one or more speakers for providing or reproducing audio guidance 152.

[90] Предполагается, что устройство 104 содержит аппаратное обеспечение и/или программное обеспечение и/или микропрограммное обеспечение (или их комбинацию), как известно в данной области техники, для обеспечения или воспроизведения звукового указания 154. Например, устройство 104 может иметь экран или другой компонент отображения для визуализации и отображения визуального указания 154.[90] Device 104 is contemplated to include hardware and/or software and/or firmware (or a combination thereof) as known in the art for providing or reproducing audio guidance 154. For example, device 104 may have a screen or another display component for rendering and displaying the visual indication 154.

[91] В некоторых вариантах осуществления устройство 104 может содержать аппаратное и/или программное обеспечение, и/или микропрограммное обеспечение (или их комбинацию), как известно в данной области техники, для выполнения приложения интеллектуального персонального помощника (IPA) (не проиллюстрировано). Вообще говоря, цель приложения IPA, также известного как «чат-бот», состоит в том, чтобы позволить пользователю 102 отправлять запросы в форме речевых высказываний и, в ответ, обеспечивать пользователю 102 ответы в форме речевых высказываний (например, звукового указания 152). [91] In some embodiments, device 104 may include hardware and/or software and/or firmware (or a combination thereof) as known in the art for running an intelligent personal assistant (IPA) application (not illustrated). Generally speaking, the purpose of an IPA application, also known as a "chatbot", is to allow the user 102 to make requests in the form of spoken utterances and, in response, provide the user 102 with responses in the form of spoken utterances (e.g., audio guidance 152). .

[92] Предоставление запросов и обеспечение ответов могут быть выполнены приложением IPA через пользовательский интерфейс на основе естественного языка. Вообще говоря, пользовательский интерфейс на основе естественного языка в приложении IPA может быть любым типом компьютерно-человеческого интерфейса, в котором лингвистические явления, такие как слова, фразы, предложения и тому подобное, выступают в качестве элементов управления пользовательского интерфейса для извлечения, выбора, модификации или иного генерирования данных в приложении IPA.[92] Providing requests and providing responses can be accomplished by the IPA application through a natural language-based user interface. Generally speaking, a natural language user interface in an IPA application can be any type of computer-human interface in which linguistic phenomena such as words, phrases, sentences and the like act as user interface controls for retrieval, selection, modification or otherwise generating data in an IPA application.

[93] Например, когда произносимые высказывания пользователя 102 обнаруживаются (т.е. захватываются) устройством 104, приложение IPA может использовать свой пользовательский интерфейс на основе естественного языка для анализа произносимых высказываний пользователя 102 и извлечения из них данных, которые указывают запросы пользователя. Кроме того, данные, указывающие ответы, принимаемые устройством 104, анализируются пользовательским интерфейсом на основе естественного языка в приложении IPA для того, чтобы обеспечить или воспроизвести произносимые высказывания (например, звуковое указание 152), указывающие эти ответы.[93] For example, when the spoken utterances of the user 102 are detected (i.e., captured) by the device 104, the IPA application may use its natural language-based user interface to analyze the spoken utterances of the user 102 and extract data from them that indicate the user's queries. In addition, data indicating the responses received by device 104 is parsed by a natural language user interface in the IPA application to provide or reproduce spoken utterances (eg, audio guidance 152) indicating those responses.

[94] В по меньшей мере некоторых вариантах осуществления настоящей технологии, как станет очевидно из приведенного ниже описания, электронное устройство 104 может быть выполнено с возможностью приема данных для воспроизведения звукового указания 152 от сервера 106. Это означает, что в некоторых вариантах осуществления сервер 106 может быть выполнен с возможностью синтеза волновых форм в реальном времени и передачи данных, представляющих эти волновые формы (например, в сегментах), на устройство 104, которое, в свою очередь, выполнено с возможностью использования этих данных для воспроизведения звукового указания 152 для пользователя 102.[94] In at least some embodiments of the present technology, as will be apparent from the description below, electronic device 104 may be configured to receive data to reproduce audio guidance 152 from server 106. This means that in some embodiments, server 106 may be configured to synthesize waveforms in real time and transmit data representing those waveforms (e.g., in segments) to device 104, which in turn is configured to use that data to reproduce audio guidance 152 to user 102 .

[95] В других вариантах осуществления устройство 104 может содержать аппаратное обеспечение и/или программное обеспечение, и/или микропрограммное обеспечение (или их комбинацию), как известно в данной области техники, для выполнения приложения улучшения изображения. Вообще говоря, цель приложения улучшения изображения состоит в обеспечении возможности пользователю 102 предоставить изображение низкого качества и, в ответ, обеспечить пользователю 102 улучшенную версию этого изображения (например, визуальное указание 154).[95] In other embodiments, device 104 may comprise hardware and/or software and/or firmware (or a combination thereof), as is known in the art, for performing an image enhancement application. Generally speaking, the purpose of an image enhancement application is to allow a user 102 to provide a poor quality image and, in response, provide the user 102 with an improved version of that image (eg, visual cue 154).

[96] В по меньшей мере некоторых вариантах осуществления настоящей технологии, как станет очевидно из приведенного ниже описания, электронное устройство 104 может быть выполнено с возможностью приема данных для отображения звукового указания 154 от сервера 106. Это означает, что в некоторых вариантах осуществления сервер 106 может быть выполнен с возможностью использования процесса суперразрешения (SR) для повышения разрешения и/или улучшения деталей в цифровом изображении низкого качества, и передачи данных, представляющих это изображение SR, на устройство 104, которое в свою очередь выполнено с возможностью использования этих данных для отображения визуального указания 154 для пользователя 102.[96] In at least some embodiments of the present technology, as will be apparent from the description below, electronic device 104 may be configured to receive data to display audio guidance 154 from server 106. This means that in some embodiments, server 106 may be configured to use a super resolution (SR) process to increase resolution and/or enhance detail in a low quality digital image, and transmit data representing that SR image to device 104, which in turn is configured to use that data to display visual guidance 154 for the user 102.

Сеть связиCommunication network

[97] В иллюстративном примере системы 100 устройство 104 коммуникативно связано с сетью 110 связи для доступа и передачи пакетов данных на/от сервера 106 и/или других веб-ресурсов (не показаны). В некоторых неограничивающих вариантах осуществления настоящей технологии сеть 110 связи может быть реализована как Интернет. В других неограничивающих вариантах осуществления настоящей технологии сеть 110 связи может быть реализована иначе, например как какая-либо глобальная сеть связи, локальная сеть связи, частная сеть связи и подобное. То, как реализуется линия связи (отдельно не пронумерованная) между устройством 104 и сетью 110 связи, будет зависеть, среди прочего, от того, как реализуется устройство 104.[97] In an illustrative example of system 100, device 104 is communicatively coupled to communications network 110 to access and transmit data packets to/from server 106 and/or other web resources (not shown). In some non-limiting embodiments of the present technology, communications network 110 may be implemented as the Internet. In other non-limiting embodiments of the present technology, the communications network 110 may be implemented in other ways, such as a wide area communications network, a local communications network, a private communications network, or the like. How a communication link (not specifically numbered) between device 104 and communications network 110 is implemented will depend on, among other things, how device 104 is implemented.

[98] Просто как пример, а не как ограничение, в тех вариантах осуществления настоящей технологии, в которых устройство 104 реализуется как устройство беспроводной связи (например, как смартфон), линия связи может быть реализована как линия беспроводной связи (такая как, но без ограничения, линия сети связи 3G, линия сети связи 4G, Wireless Fidelity или WiFi® для краткости, Bluetooth® и подобное). В тех примерах, в которых устройство 104 реализуется как ноутбук, линия связи может быть либо беспроводной (такой как Wireless Fidelity или WiFi® для краткости, Bluetooth® или подобное), либо проводной (такой как Ethernet-соединение).[98] Merely by way of example and not as limitation, in those embodiments of the present technology in which device 104 is implemented as a wireless communication device (such as a smartphone), the communication link may be implemented as a wireless communication link (such as but not restrictions, 3G network line, 4G network line, Wireless Fidelity or WiFi® for short, Bluetooth® and the like). In those examples in which device 104 is implemented as a laptop, the communication link may be either wireless (such as Wireless Fidelity or WiFi® for short, Bluetooth® or the like) or wired (such as an Ethernet connection).

СерверServer

[99] Как упоминалось ранее, система 100 также содержит сервер 106, который может быть реализован как обычный компьютерный сервер. В примере варианта осуществления настоящей технологии сервер 106 может быть реализован как сервер Dell™ PowerEdge™, работающий под управлением операционной системы Microsoft™ Windows Server™. Само собой разумеется, сервер 106 может быть реализован в любом другом подходящем аппаратном, программном и/или микропрограммном обеспечении, или в их комбинации. В проиллюстрированном неограничивающем варианте осуществления настоящей технологии сервер 106 является единственным сервером. В альтернативных неограничивающих вариантах осуществления настоящей технологии функциональные возможности сервера 106 могут быть распределены и могут быть реализованы посредством многочисленных серверов.[99] As mentioned previously, system 100 also includes a server 106, which may be implemented as a conventional computer server. In an example embodiment of the present technology, server 106 may be implemented as a Dell™ PowerEdge™ server running the Microsoft™ Windows Server™ operating system. Of course, the server 106 may be implemented in any other suitable hardware, software and/or firmware, or a combination thereof. In the illustrated non-limiting embodiment of the present technology, server 106 is the only server. In alternative, non-limiting embodiments of the present technology, the functionality of the server 106 may be distributed and implemented by multiple servers.

[100] Вообще говоря, сервер 106 выполнен с возможностью синтеза волновых форм для обеспечения звукового указания 152 и/или для генерирования цифровых изображений SR для отображения визуального указания 154. Можно сказать, что сервер 106 может использоваться для приложений синтеза речи и/или приложений суперразрешения в различных реализациях настоящей технологии.[100] Generally speaking, the server 106 is configured to synthesize waveforms to provide audio guidance 152 and/or to generate SR digital images to display visual guidance 154. It can be said that the server 106 can be used for speech synthesis applications and/or super resolution applications in various implementations of this technology.

[101] В некоторых вариантах осуществления сервер 106 может принимать текст и в ответ генерировать волновую форму, представляющую произнесенный текст. Для этой цели сервер 106 может иметь механизм 130 генерирования речи. Вообще говоря, механизм 130 генерирования речи содержит один или более алгоритмов машинного обучения, которые позволяют серверу 106 синтезировать «выходные аудиоданные», представляющие текст. Как будет описано более подробно ниже со ссылкой на Фигуру 2 механизм 130 генерирования речи может содержать первую модель, выполненную с возможностью генерирования мел-спектрограммы на основе входных текстовых данных, и вторую модель, выполненную с возможностью использования этой мел-спектрограммы для синтеза волновой формы. Можно сказать, что первая модель представляет собой модель «текст в спектрограмму». Можно также сказать, что вторая модель представляет собой нейронный вокодер, выполненный с возможностью синтеза волновых форм во временной области, которые могут быть обусловлены мел-спектрограммами из модели «текст в спектрограмму».[101] In some embodiments, server 106 may receive text and respond by generating a waveform representing the spoken text. For this purpose, the server 106 may have a speech generation engine 130. Generally speaking, speech generation engine 130 contains one or more machine learning algorithms that enable server 106 to synthesize “audio output” representing text. As will be described in more detail below with reference to Figure 2, the speech generation engine 130 may include a first model configured to generate a mel spectrogram based on input text data, and a second model configured to use the mel spectrogram to synthesize a waveform. We can say that the first model is a “text to spectrogram” model. The second model can also be said to be a neural vocoder capable of synthesizing time-domain waveforms that can be driven by mel spectrograms from the text-to-spectrogram model.

[102] В других вариантах осуществления сервер 106 может принимать цифровое изображение низкого качества и в ответ генерировать цифровое изображение высокого качества. Для этой цели сервер 106 может иметь механизм 140 генерирования изображения. Вообще говоря, механизм 140 генерирования изображения содержит один или более алгоритмов машинного обучения, которые позволяют серверу 106 выполнять SR-обработку цифровых изображений. Как будет описано более подробно ниже со ссылкой на Фигуру 3, механизм 130 генерирования речи может содержать модель, выполненную с возможностью генерирования изображения SR путем повышения разрешения изображения LR до более высокого разрешения.[102] In other embodiments, server 106 may receive a low quality digital image and generate a high quality digital image in response. For this purpose, the server 106 may have an image generation engine 140. Generally speaking, image generation engine 140 contains one or more machine learning algorithms that enable server 106 to perform SR processing on digital images. As will be described in more detail below with reference to Figure 3, speech generation engine 130 may include a model configured to generate an SR image by upscaling the LR image to a higher resolution.

[103] Сервер 106 может иметь доступ к устройству памяти (не проиллюстрированному). Сервер 106 выполнен с возможностью использования устройства памяти для сохранения данных, обрабатываемых по меньшей мере некоторыми компонентами механизма 130 генерирования речи и/или механизма 140 генерирования изображения. В некоторых вариантах осуществления устройство памяти может быть составной частью сервера 106. Однако предполагается, что устройство памяти может быть устройством памяти, удаленным от сервера 106, не выходя за рамки настоящей технологии.[103] Server 106 may have access to a memory device (not illustrated). The server 106 is configured to use a memory device to store data processed by at least some components of the speech generation engine 130 and/or the image generation engine 140. In some embodiments, the memory device may be an integral part of the server 106. However, it is contemplated that the memory device may be a memory device remote from the server 106 without departing from the scope of the present technology.

[104] В по меньшей мере одном варианте осуществления настоящей технологии устройство памяти может представлять собой устройство «графического процессора» (GPU). Вообще говоря, устройство GPU содержит специализированный процессор с выделенной памятью, который обычно выполняет операции с плавающей запятой, требуемые для рендеринга графики. Устройства памяти типа GPU можно оптимизировать для моделей глубокого обучения, поскольку они могут обрабатывать несколько вычислений одновременно. Другими словами, модели глубокого обучения можно обучать быстрее, используя устройства памяти типа GPU, в отличие от устройств типа «центральный процессор» (CPU), выполняя операции параллельно (в одно и то же время), а не последовательно (одну за другой).[104] In at least one embodiment of the present technology, the memory device may be a "graphics processing unit" (GPU) device. Generally speaking, a GPU device contains a specialized processor with dedicated memory that typically performs the floating point operations required for graphics rendering. GPU-type memory devices can be optimized for deep learning models because they can process multiple calculations simultaneously. In other words, deep learning models can be trained faster using GPU-type memory devices, as opposed to central processing unit (CPU)-type devices, by performing operations in parallel (at the same time) rather than sequentially (one after the other).

[105] Действительно, устройства памяти типа GPU могут иметь большое число ядер, что обеспечивает возможность лучшего вычисления многочисленных параллельных процессов. Кроме того, вычисления при глубоком обучении должны обрабатывать огромные объемы данных, что делает пропускную способность устройств памяти типа GPU наиболее подходящей.[105] Indeed, GPU-type memory devices can have a large number of cores, which allows for better computation of multiple parallel processes. In addition, deep learning computations must process enormous amounts of data, making the throughput of GPU-type memory devices most suitable.

[106] Фактически, несколько параметров могут сделать GPU более предпочтительными, чем CPU, для приложений глубокого обучения. Пропускная способность является одной из основных причин, почему GPU быстрее для вычислений, чем CPU. С большими наборами данных CPU задействуют много памяти при обучении модели. С одной стороны, вычисление огромных и сложных задач задействует много тактовых циклов в устройстве памяти типа CPU. CPU выполняют задания последовательно и имеют сравнительно меньше ядер. С другой стороны, GPU поставляются с выделенной памятью VRAM (Video RAM). Кроме того, для обучения модели с помощью глубокого обучения требуется большой набор данных, отсюда и большие вычислительные операции с точки зрения памяти. Для эффективного вычисления данных устройство памяти типа GPU может быть более подходящим выбором - чем больше количество вычислений, тем большее преимущество может иметь устройство памяти типа GPU над устройством памяти типа CPU.[106] In fact, several parameters can make GPUs preferable to CPUs for deep learning applications. Bandwidth is one of the main reasons why GPU is faster for computing than CPU. With large datasets, CPUs use a lot of memory when training a model. On the one hand, computing huge and complex problems uses many clock cycles in a memory device such as a CPU. CPUs execute tasks sequentially and have comparatively fewer cores. On the other hand, GPUs come with dedicated VRAM (Video RAM). Additionally, training a model using deep learning requires a large dataset, hence the computational overhead in terms of memory. For efficient data computation, a GPU type memory device may be a more suitable choice - the larger the number of calculations, the greater the advantage that a GPU type memory device may have over a CPU type memory device.

Система базы данныхDatabase system

[107] Сервер 106 коммуникативно связан с системой 120 базы данных. Вообще говоря, система 120 базы данных выполнена с возможностью сохранения информации, извлекаемой и/или генерируемой сервером 106 во время обработки. Например, система 120 базы данных может принимать данные от сервера 106, которые были извлечены и/или сгенерированы сервером 106 во время обработки, для их временного и/или постоянного сохранения и может обеспечивать сохраненные данные серверу 106 для их дальнейшего использования.[107] The server 106 is communicatively coupled to the database system 120 . Generally speaking, the database system 120 is configured to store information retrieved and/or generated by the server 106 during processing. For example, database system 120 may receive data from server 106 that was retrieved and/or generated by server 106 during processing for temporary and/or permanent storage, and may provide the stored data to server 106 for future use.

[108] Система 120 базы данных может быть выполнена с возможностью сохранения данных спектрограмм и данных волновых форм. Вообще говоря, данные спектрограмм и данные волновых форм могут использоваться сервером 106 для обучения по меньшей мере некоторых компонентов механизма 130 генерирования речи. Например, сервер 105 может быть выполнен с возможностью генерирования определенной спектрограммы на основе определенной волновой формы, тем самым формируя пару спектрограмма-волновая форма. Сервер 106 может генерировать и сохранять в базе 120 данных большое число таких пар спектрограмм-волновых форм для обучения вокодера. В по меньшей мере некоторых вариантах осуществления определенная пара спектрограмма-волновая форма может использоваться для генерирования группы обучающих наборов для вокодера. Например, спектрограмма и волновая форма из определенной пары могут быть разделены на ряд соответствующих частей, и причем пара из первой части спектрограммы и первой части волновой формы может использоваться вместе во время первой итерации обучения, а пара из второй части спектрограммы и второй части волновой формы может использоваться вместе во время второй итерации обучения.[108] The database system 120 may be configured to store spectrogram data and waveform data. Generally speaking, the spectrogram data and waveform data may be used by the server 106 to train at least some components of the speech generation engine 130. For example, server 105 may be configured to generate a specific spectrogram based on a specific waveform, thereby generating a spectrogram-waveform pair. Server 106 may generate and store in database 120 a large number of such spectrogram-waveform pairs for vocoder training. In at least some embodiments, a particular spectrogram-waveform pair may be used to generate a group of training sets for a vocoder. For example, a spectrogram and a waveform from a particular pair may be divided into a number of corresponding parts, wherein the pair from the first spectrogram part and the first waveform part can be used together during the first training iteration, and the pair from the second spectrogram part and the second waveform part can be used together during the second iteration of training.

[109] Система 120 базы данных может быть выполнена с возможностью сохранения данных изображений. Вообще говоря, данные изображений могут использоваться сервером 106 для обучения по меньшей мере некоторых компонентов механизма 140 генерирования изображения. Например, сервер 106 может быть выполнен с возможностью генерирования изображения LR на основе определенного изображения HR, тем самым формируя пару изображений LR-HR. Сервер 106 может использовать различные методики понижающей дискретизации для генерирования определенного изображения LR. Сервер 106 может генерировать и сохранять в базе 120 данных большое число таких пар изображений LR-HR для обучения алгоритмов SR. В по меньшей мере некоторых вариантах осуществления определенная пара изображений LR-HR может использоваться для генерирования группы обучающих наборов для алгоритма SR. Например, изображение LR и изображение HR из определенной пары могут быть разделены на ряд соответствующих частей, и причем пара из первой части изображения LR и первой части изображения HR может использоваться вместе во время первой итерации обучения, а пара из второй части изображения LR и второй части изображения HR может использоваться вместе во время второй итерации обучения.[109] The database system 120 may be configured to store image data. Generally speaking, the image data may be used by the server 106 to train at least some components of the image generation engine 140. For example, server 106 may be configured to generate an LR image based on a particular HR image, thereby generating an LR-HR image pair. Server 106 may use various downsampling techniques to generate a particular LR image. The server 106 may generate and store in a database 120 a large number of such LR-HR image pairs for training SR algorithms. In at least some embodiments, a particular LR-HR image pair may be used to generate a group of training sets for the SR algorithm. For example, an LR image and an HR image from a particular pair may be divided into a number of corresponding parts, and wherein the pair from the first LR image part and the first HR image part may be used together during the first training iteration, and the pair from the second LR image part and the second part HR images can be used together during the second training iteration.

[110] Система 120 базы данных может быть выполнена с возможностью сохранения данных шума. Вообще говоря, данные шума могут использоваться сервером 106 для обучения и/или использования по меньшей мере некоторых компонентов механизма 130 генерирования речи и механизма 140 генерирования изображения. Например, система 120 базы данных может хранить множество распределений шума, таких как нормальные распределения шума. Эти распределения шума могут использоваться во время фазы использования основанного на потоке вокодера. Эти распределения шума могут использоваться во время фаз обучения и использования вокодера прямого распространения. Эти распределения шума могут дополнительно использоваться во время фазы использования основанного на потоке алгоритма SR. Эти распределения шума могут также использоваться во время фаз обучения и использования алгоритма SR прямого распространения.[110] The database system 120 may be configured to store noise data. Generally speaking, the noise data may be used by the server 106 to train and/or use at least some components of the speech generation engine 130 and the image generation engine 140. For example, database system 120 may store multiple noise distributions, such as normal noise distributions. These noise distributions can be used during the use phase of the flow-based vocoder. These noise distributions can be used during the training phases and use of the feedforward vocoder. These noise distributions can be further used during the use phase of the flow-based SR algorithm. These noise distributions can also be used during the training phases and use of the feedforward SR algorithm.

Механизм генерирования речиSpeech generation mechanism

[111] Со ссылкой на Фигуру 2 изображено представление того, как механизм 130 генерирования речи может быть выполнен с возможностью использования входных текстовых данных 200 и входного шума 225 для генерирования волновой формы 230. Сервер 106 может получать входные текстовые данные 200 различными способами. В одном неограничивающем примере входные текстовые данные 200 могут представлять собой контент, который должен быть обеспечен пользователю 102.[111] Referring to Figure 2, depicts a representation of how speech generation engine 130 may be configured to use input text data 200 and input noise 225 to generate waveform 230. Server 106 may receive input text data 200 in various ways. In one non-limiting example, input text data 200 may represent content to be provided to user 102.

[112] Независимо от того, как сервер 106 получает и/или генерирует входные текстовые данные 200, цель состоит в том, чтобы обработать эти текстовые входные данные 200 механизмом 130 генерирования речи для генерирования волновой формы 230 (имеющейся в аудио представлении этих текстовых входных данных 200), чтобы она могла быть обеспечена пользователю 102 в качестве сгенерированного машиной высказывания. С этой целью механизм 130 генерирования речи содержит модель 210 «текст в спектрограмму», выполненную с возможностью генерирования спектрограммы 215 на основе входных текстовых данных 200, и вокодер 220, выполненный с возможностью синтеза волновой формы 230 на основе спектрограммы 215 и входного шума 225.[112] Regardless of how the server 106 receives and/or generates the text input data 200, the goal is to process the text input data 200 by the speech generation engine 130 to generate a waveform 230 (available in the audio representation of the text input data 200) so that it can be provided to the user 102 as a machine-generated utterance. To this end, the speech generation engine 130 includes a text-to-spectrogram model 210 configured to generate a spectrogram 215 based on input text data 200, and a vocoder 220 configured to synthesize a waveform 230 based on the spectrogram 215 and input noise 225.

[113] То, как модель 210 «текст в спектрограмму» реализуется, конкретным образом не ограничено. В одном неограничивающем примере сервер 106 может быть выполнен с возможностью использования определенного алгоритма машинного обучения, который был обучен генерировать данные спектрограмм на основе входных текстовых данных. В одной неограничивающей реализации настоящей технологии модель 210 «текст в спектрограмму» может быть реализована через «Tacotron», что является архитектурой машинного обучения «последовательность в последовательность» для создания амплитудных спектрограмм из последовательности символов. В некоторых вариантах осуществления спектрограмма 215 может быть мел-спектрограммой, что означает, что одна из осей на спектрограмме имеет мел-шкалу.[113] How the text-to-spectrogram model 210 is implemented is not particularly limited. In one non-limiting example, server 106 may be configured to use a specific machine learning algorithm that has been trained to generate spectrogram data based on input text data. In one non-limiting implementation of the present technology, the text-to-spectrogram model 210 may be implemented through a "Tacotron", which is a sequence-to-sequence machine learning architecture for generating amplitude spectrograms from a sequence of symbols. In some embodiments, the spectrogram 215 may be a chalk spectrogram, which means that one of the axes on the spectrogram has a chalk scale.

[114] В контексте настоящей технологии вокодер 220 воплощается как вокодер прямого распространения. Можно сказать, что вокодер 220 прямого распространения является генеративной моделью прямого распространения, выполненной с возможностью синтеза волновой формы на основе спектрограммы 215 и входного шума 225. Вокодер 220 прямого распространения может быть обучен путем выполнения процесса дистилляции соответствующего основанного на потоке вокодера. Процесс дистилляции определенного основанного на потоке вокодера для обучения вокодера 220 прямого распространения был описан выше со ссылкой на Фигуру 4. В по меньшей мере некоторых реализациях настоящей технологии вокодер 220 прямого распространения может иметь первую архитектуру 502 ученика, описанную выше со ссылкой на Фигуру 5. Кроме того, в некоторых вариантах осуществления настоящей технологии вокодер 220 прямого распространения может быть обучен и использован аналогично тому, как это раскрыто в статье, приложенной к данному документу.[114] In the context of the present technology, vocoder 220 is implemented as a forward propagation vocoder. The feedforward vocoder 220 can be said to be a feedforward generative model configured to synthesize a waveform based on the spectrogram 215 and the input noise 225. The feedforward vocoder 220 can be trained by performing a distillation process of a corresponding flow-based vocoder. The process of distilling a particular flow-based vocoder to train the feedforward vocoder 220 has been described above with reference to Figure 4. In at least some implementations of the present technology, the feedforward vocoder 220 may have the first learner architecture 502 described above with reference to Figure 5. In addition Moreover, in some embodiments of the present technology, feedforward vocoder 220 may be trained and used in a manner similar to that disclosed in the article accompanying this document.

Механизм генерирования изображенияImage generation mechanism

[115] Со ссылкой на Фигуру 3 изображено представление того, как механизм 140 генерирования изображения может быть выполнен с возможностью использования изображения 300 LR и входного шума 325 для генерирования изображения 330 HR. Сервер 106 может получать изображение 300 LR различными способами.[115] Referring to Figure 3, depicts a representation of how an image generation engine 140 may be configured to use an LR image 300 and input noise 325 to generate an HR image 330. The server 106 may obtain the LR image 300 in various ways.

[116] Независимо от того, как сервер 106 получает изображение 300 LR, цель состоит в том, чтобы обработать изображение 300 HR посредством механизма 140 генерирования изображения для синтеза пикселей SR, чтобы они могли быть обеспечены пользователю 102 в качестве сгенерированного машиной изображения. С этой целью механизм 140 генерирования изображения содержит модель 320 SR прямого распространения. Можно сказать, что модель 320 SR прямого распространения является генеративной моделью прямого распространения, выполненной с возможностью синтеза изображения HR на основе изображения 300 LR и входного шума 325. Модель 320 прямого распространения может быть обучена путем выполнения процесса дистилляции соответствующей основанной на потоке модели SR. Процесс дистилляции определенной основанной на потоке модели SR для обучения модели 320 SR прямого распространения был описан выше со ссылкой на Фигуру 4. В по меньшей мере некоторых реализациях настоящей технологии модель 320 SR прямого распространения может иметь вторую архитектуру 504 ученика, описанную выше со ссылкой на Фигуру 5. Кроме того, в некоторых вариантах осуществления настоящей технологии вокодер 220 прямого распространения может быть обучен и использован аналогично тому, как это раскрыто в статье, приложенной к данному документу.[116] Regardless of how the server 106 receives the LR image 300, the goal is to process the HR image 300 through the image generation engine 140 to synthesize the SR pixels so that they can be provided to the user 102 as a machine-generated image. To this end, the image generation engine 140 includes a forward propagation SR model 320 . The feedforward SR model 320 can be said to be a generative feedforward model configured to synthesize an HR image based on the LR image 300 and input noise 325. The feedforward model 320 can be trained by performing a distillation process of the corresponding flow-based SR model. The process of distilling a certain flow-based SR model to train the feedforward SR model 320 was described above with reference to Figure 4. In at least some implementations of the present technology, the feedforward SR model 320 may have a second learner architecture 504 described above with reference to the Figure. 5. Additionally, in some embodiments of the present technology, feedforward vocoder 220 may be trained and used in a manner similar to that disclosed in the article accompanying this document.

[117] В некоторых вариантах осуществления настоящей технологии сервер 106 может быть выполнен с возможностью исполнения способа 700, проиллюстрированного на Фигуре 7. Различные этапы способа 700 теперь будут обсуждаться более подробно со ссылкой на Фигуру 6 и Фигуру 7.[117] In some embodiments of the present technology, the server 106 may be configured to execute the method 700 illustrated in Figure 7. The various steps of the method 700 will now be discussed in more detail with reference to Figure 6 and Figure 7.

ЭТАП 702: получение обученного основанного на потоке вокодера, включающего в себя множество обратимых блоковSTEP 702: Obtaining a trained flow-based vocoder including a plurality of reversible blocks

[118] Способ 700 начинается на этапе 702, на котором сервер 106 получает обученный основанный на потоке вокодер 602. Обученный основанный на потоке вокодер включает в себя множество 612 обратимых блоков. Обученный основанный на потоке вокодер был обучен генерировать волновую форму на основе пары из спектрограммы (обусловливающий элемент) и входного шума.[118] Method 700 begins at step 702, where server 106 receives a trained flow-based vocoder 602. The trained flow-based vocoder includes a plurality of invertible blocks 612. A trained flow-based vocoder was trained to generate a waveform based on a pair of spectrogram (conditioner) and input noise.

[119] В некоторых вариантах осуществления предполагается, что сервер 106 может быть выполнен с возможностью сначала обучать основанный на потоке вокодер 602. Например, сервер 106 может извлекать пары спектрограмма-волновая форма, хранящиеся в базе 120 данных, и использовать их для генерирования множества наборов обучающих данных. Затем сервер 106 может быть выполнен с возможностью выполнения большого числа итераций обучения на основе множества наборов обучающих данных.[119] In some embodiments, it is contemplated that server 106 may be configured to first train flow-based vocoder 602. For example, server 106 may retrieve spectrogram-waveform pairs stored in database 120 and use them to generate multiple sets training data. The server 106 may then be configured to perform a large number of training iterations based on the multiple training data sets.

[120] В по меньшей мере некоторых вариантах осуществления настоящей технологии спектрограммы, используемые во время обучения и использования основанного на условном потоке вокодера, могут быть мел-масштабированными спектрограммами. Следует отметить, что определенный входной шум во время фазы использования основанного на условном потоке вокодера может представлять нормальное распределение значений шума, из которого можно выполнять выборку для генерирования соответствующей волновой формы. Основанный на условном потоке вокодер может быть реализован как основанный на нормализующем потоке вокодер.[120] In at least some embodiments of the present technology, the spectrograms used during training and use of the conditional flow-based vocoder may be fine-scaled spectrograms. It should be noted that a particular input noise during the use phase of a conditional flow-based vocoder may represent a normal distribution of noise values from which it may be sampled to generate an appropriate waveform. The conditional flow-based vocoder can be implemented as a normalizing flow-based vocoder.

ЭТАП 704: получение необученного вокодера прямого распространения, включающего в себя множество необратимых блоковSTEP 704: Receive an untrained feedforward vocoder including a plurality of irreversible blocks

[121] Способ 700 переходит на этап 704, на котором сервер 106 получает необученный вокодер 604 прямого распространения. Необученный вокодер 604 прямого распространения включает в себя множество 614 необратимых блоков. Предполагается, что вокодер 604 прямого распространения может быть реализован как основанный на определенной сверточной нейронной сети (CNN) вокодер.[121] The method 700 proceeds to step 704, where the server 106 receives an untrained feedforward vocoder 604. The untrained forward propagation vocoder 604 includes a plurality of 614 irreversible blocks. It is contemplated that feedforward vocoder 604 may be implemented as a specific convolutional neural network (CNN) vocoder.

[122] Сервер 106 может быть выполнен с возможностью формирования сети 600 учитель-ученик, включающей в себя обученный основанный на потоке вокодер 602 в качестве модели учителя и необученный вокодер 604 прямого распространения в качестве модели ученика. Сервер 106 может быть выполнен с возможностью осуществления процесса дистилляции для дистилляции знаний из обученного основанного на потоке вокодера 602 в необученный вокодер 604 прямого распространения.[122] The server 106 may be configured to form a teacher-student network 600 including a trained flow-based vocoder 602 as a teacher model and an untrained feedforward vocoder 604 as a student model. The server 106 may be configured to perform a distillation process to distill knowledge from the trained flow-based vocoder 602 to the untrained feedforward vocoder 604.

ЭТАП 706: выполнение процесса обучения в сети учитель-ученикSTEP 706: Execution of teaching process in teacher-student network

[123] Способ 700 переходит на этап 706, на котором сервер 106 выполнен с возможностью исполнения процесса обучения в сети 600 учитель-ученик, при котором модель ученика обучается на основе модели учителя. Процесс обучения включает в себя некоторое число итераций обучения. Можно сказать, что определенная итерация обучения сети 600 учитель-ученик включает в себя итерацию использования модели учителя и итерацию обучения модели ученика.[123] The method 700 proceeds to step 706, where the server 106 is configured to execute a learning process in the teacher-student network 600 in which the student model is trained based on the teacher model. The learning process includes a number of learning iterations. It can be said that a particular training iteration of the teacher-student network 600 includes an iteration of using the teacher model and an iteration of training the student model.

[124] Как проиллюстрировано на Фигуре 6, сервер 106 может использовать обученный основанный на потоке вокодер 602 для генерирования связанной с учителем волновой формы 622 с использованием первой спектрограммы 608 и первого входного шума 606, которые вместе формируют пару 610 обусловливающий элемент-входной шум.[124] As illustrated in Figure 6, server 106 may use a trained flow-based vocoder 602 to generate a teacher-associated waveform 622 using the first spectrogram 608 and the first input noise 606, which together form a conditioning element-input noise pair 610.

[125] В некоторых вариантах осуществления можно сказать, что определенный потоковый этап (например, обратимый блок) обученного основанного на потоке вокодера 602 может принимать обусловливающий элемент (первую спектрограмму 608) для определения параметров представления аффинной связи. Затем эти параметры могут быть применены к выборке шума из упомянутого шума (первого входного шума 225). Когда определенная волновая форма синтезируется таким образом на основе обусловливающего элемента, можно сказать, что основанный на потоке вокодер имеет «степень свободы» для генерирования данной волновой формы, поскольку некоторое число волновых форм может быть сгенерировано для одного и того же обусловливающего элемента. Таким образом, обеспечение входного шума во время фазы использования основанного на потоке вокодера позволяет, в некотором смысле, зафиксировать эту степень свободы так, чтобы вокодер синтезировал определенную волновую форму, которая соответствует обусловливающему элементу и входному шуму. Основанный на потоке вокодер может выполнять выборку из входного шума во время генерирования определенной волновой формы.[125] In some embodiments, a particular flow stage (eg, a reversible block) of the trained flow-based vocoder 602 may be said to receive a conditioner (the first spectrogram 608) to determine the parameters of the affine relation representation. These parameters can then be applied to a noise sample from said noise (first input noise 225). When a particular waveform is synthesized from a conditioner in this manner, the flow-based vocoder can be said to have a "degree of freedom" to generate that waveform, since a number of waveforms can be generated for the same conditioner. Thus, providing input noise during the use phase of the flow-based vocoder allows, in a sense, to lock in this degree of freedom so that the vocoder synthesizes a specific waveform that matches the conditioning element and the input noise. A stream-based vocoder can sample from input noise while generating a specific waveform.

[126] Также, как проиллюстрировано на Фигуре 6, сервер 106 может использовать пару 610 обусловливающий элемент-входной шум в качестве входных данных в необученный вокодер 604 прямого распространения для генерирования связанной с учеником волновой формы 624. Следует отметить, что в контексте настоящей технологии сервер 106 выполнен с возможностью использования одной и той же пары обусловливающий элемент-входной шум для генерирования связанной с учителем волновой формы 622 обученным основанным на потоке вокодером 602 и для генерирования связанной с учеником волновой формы 624 необученным вокодером 624 прямого распространения.[126] Also, as illustrated in Figure 6, server 106 may use conditioner-input noise pair 610 as input to untrained feedforward vocoder 604 to generate learner-related waveform 624. It should be noted that, in the context of the present technology, the server 106 is configured to use the same conditioner-input noise pair to generate a teacher-related waveform 622 by a trained flow-based vocoder 602 and to generate a student-related waveform 624 by an untrained feedforward vocoder 624.

[127] Сервер 106 затем выполнен с возможностью генерирования значения 650 потерь для данной итерации обучения с использованием связанной с учителем волновой формы 622 и связанной с учеником волновой формы 624. В качестве примера значение 650 потерь может представлять собой комбинацию (i) значения основанных на восстановлении потерь, представляющего различие между связанной с учителем волновой формой 622 и связанной с учеником волновой формой 624, и (ii) значения основанных на признаках потерь, представляющего различие между признаками связанной с учителем волновой формы 622 и связанной с учеником волновой формы 624.[127] The server 106 is then configured to generate a loss value 650 for a given training iteration using a teacher-related waveform 622 and a student-related waveform 624. As an example, the loss value 650 may be a combination of (i) a recovery-based value a loss value representing the difference between the teacher-related waveform 622 and the student-related waveform 624, and (ii) a feature-based loss value representing the difference between the attributes of the teacher-related waveform 622 and the student-related waveform 624.

[128] Сервер 106 также выполнен с возможностью обучения необученного вокодера 604 прямого распространения с использованием значения 650 потерь. Например, обучение необученного вокодера 604 прямого распространения может выполняться контролируемым образом, в том числе с циклом 670 обратного распространения ошибки, выполняемым на основе значения 650 потерь. Можно сказать, что сервер 106 может таким образом обучить необученный вокодер 604 прямого распространения для аппроксимации отображения между по меньшей мере первым входным шумом 606 и связанной с учителем волновой формой 622. Можно также сказать, что сервер 106 может таким образом обучить необученный вокодер 604 прямого распространения для аппроксимации отображения между парой 610 обусловливающий элемент-входной шум и связанной с учителем волновой формой 622.[128] The server 106 is also configured to train an untrained feedforward vocoder 604 using a loss value 650. For example, training of the untrained forward propagation vocoder 604 may be performed in a controlled manner, including a backpropagation loop 670 performed based on the loss value 650. It may be said that the server 106 may thus train the untrained feedforward vocoder 604 to approximate the mapping between at least the first input noise 606 and the teacher associated waveform 622. It may also be said that the server 106 may thus train the untrained feedforward vocoder 604 to approximate the mapping between conditioner-input noise pair 610 and teacher-related waveform 622.

[129] Следует отметить, что большое число таких итераций обучения может происходить во время процесса обучения в сети 600 учитель-ученик, не выходя за рамки настоящей технологии.[129] It should be noted that a large number of such training iterations can occur during the training process in the teacher-student network 600 without going beyond the scope of the present technology.

ЭТАП 708: получение спектрограммы и входного шумаSTEP 708: Obtain Spectrogram and Input Noise

[130] Способ 700 переходит на этап 708, на котором сервер 106 выполнен с возможностью получения определенной спектрограммы и определенного входного шума. Например, сервер 106 может быть выполнен с возможностью генерирования спектрограммы 215 на основе текста 200. Кроме того, сервер 106 может извлекать входной шум 225 из базы 120 данных и/или генерировать входной шум 225 во время итерации использования теперь обученного вокодера прямого распространения.[130] The method 700 proceeds to step 708, where the server 106 is configured to obtain a certain spectrogram and a certain input noise. For example, server 106 may be configured to generate a spectrogram 215 based on text 200. Additionally, server 106 may extract input noise 225 from database 120 and/or generate input noise 225 during an iteration of the now trained feedforward vocoder.

ЭТАП 710: использование обученного вокодера прямого распространения вместо обученного основанного на потоке вокодера для генерирования волновой формы на основе спектрограммы и входного шумаSTEP 710: Using a trained feedforward vocoder instead of a trained flow-based vocoder to generate a waveform based on the spectrogram and input noise

[131] Способ 700 переходит на этап 710, на котором сервер 106 выполнен с возможностью использования теперь обученного вокодера 604 прямого распространения вместо обученного основанного на потоке вокодера 602 для генерирования волновой формы 230 на основе спектрограммы 215 и входного шума 225.[131] Method 700 proceeds to step 710, where server 106 is configured to use the now trained feedforward vocoder 604 instead of the trained flow-based vocoder 602 to generate waveform 230 based on spectrogram 215 and input noise 225.

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

Claims (51)

1. Способ генерирования волновой формы на основе спектрограммы и входного шума, причем спектрограмма была сгенерирована на основе текста, волновая форма является цифровым аудио представлением текста, причем способ является исполняемым посредством сервера и содержит:1. A method for generating a waveform based on a spectrogram and input noise, wherein the spectrogram was generated from text, the waveform being a digital audio representation of the text, wherein the method is executable by a server and comprises: получение сервером обученного основанного на потоке вокодера, включающего в себя множество обратимых блоков, причем обученный основанный на потоке вокодер был обучен генерировать волновую форму на основе спектрограммы и входного шума;receiving by the server a trained flow-based vocoder including a plurality of reversible blocks, wherein the trained flow-based vocoder has been trained to generate a waveform based on the spectrogram and the input noise; получение сервером необученного вокодера прямого распространения, включающего в себя множество необратимых блоков,the server receives an untrained forward propagation vocoder, which includes many irreversible blocks, причем обученный основанный на потоке вокодер и необученный вокодер прямого распространения образуют сеть учитель-ученик;wherein the trained flow-based vocoder and the untrained feedforward vocoder form a teacher-student network; выполнение процесса обучения в сети учитель-ученик, причем во время определенной итерации обучения процесса обучения:execution of the learning process in the teacher-student network, and during a certain iteration of the learning process: генерирование сервером связанной с учителем волновой формы посредством обученного основанного на потоке вокодера с использованием первой спектрограммы и первого входного шума;generating a teacher-related waveform by the server via the trained flow-based vocoder using the first spectrogram and the first input noise; генерирование сервером связанной с учеником волновой формы посредством необученного вокодера прямого распространения с использованием первой спектрограммы и первого входного шума;generating a student-related waveform by the server via an untrained feedforward vocoder using the first spectrogram and the first input noise; генерирование сервером значения потерь для данной итерации обучения с использованием связанной с учителем волновой формы и связанной с учеником волновой формы; иgenerating by the server a loss value for a given training iteration using the teacher associated waveform and the student associated waveform; And обучение сервером необученного вокодера прямого распространения генерировать волновую форму с использованием значения потерь для аппроксимации отображения между первым входным шумом и связанной с учителем волновой формы основанного на потоке вокодера;teaching the untrained feedforward vocoder server to generate a waveform using the loss value to approximate the mapping between the first input noise and the teacher-associated waveform of the flow-based vocoder; получение сервером спектрограммы и входного шума; иthe server receives the spectrogram and input noise; And использование сервером обученного вокодера прямого распространения вместо обученного основанного на потоке вокодера для генерирования волновой формы на основе спектрограммы и входного шума.The server uses a trained forward propagation vocoder instead of a trained flow-based vocoder to generate a waveform based on the spectrogram and input noise. 2. Способ по п. 1, в котором спектрограмма представляет собой мел-масштабированную спектрограмму.2. The method of claim 1, wherein the spectrogram is a chalk-scaled spectrogram. 3. Способ по п. 1, в котором входной шум представляет собой нормальное распределение значений шума.3. The method according to claim 1, wherein the input noise is a normal distribution of noise values. 4. Способ по п. 1, при этом способ дополнительно содержит сохранение сервером обученного вокодера прямого распространения в хранилище.4. The method of claim 1, wherein the method further comprises storing the trained feedforward vocoder in storage by the server. 5. Способ по п. 1, в котором значение потерь представляет собой комбинацию значения основанных на восстановлении потерь и значения основанных на признаках потерь,5. The method of claim 1, wherein the loss value is a combination of the recovery-based loss value and the feature-based loss value, значение основанных на восстановлении потерь представляет различие между связанной с учителем волновой формой и связанной с учеником волновой формой, иthe value of the recovery-based loss represents the difference between the teacher-related waveform and the student-related waveform, and значение основанных на признаках потерь представляет различие между признаками связанной с учителем волновой формы и признаками связанной с учеником волновой формы.The value of the attribute-based losses represents the difference between the attributes of the teacher-related waveform and the attributes of the student-related waveform. 6. Способ по п. 1, в котором обученный основанный на потоке вокодер представляет собой основанный на условном нормализующем потоке вокодер.6. The method of claim 1, wherein the trained flow-based vocoder is a conditional flow normalizing vocoder. 7. Способ по п. 1, в котором обученный вокодер прямого распространения представляет собой основанный на сверточной нейронной сети (CNN) вокодер.7. The method of claim 1, wherein the trained feedforward vocoder is a convolutional neural network (CNN)-based vocoder. 8. Способ генерирования выходных данных с использованием входных обусловливающих данных и входного шума, причем способ является исполняемым сервером и содержит:8. A method for generating output data using input conditioning data and input noise, wherein the method is an executable server and contains: получение сервером обученной основанной на условном потоке модели, включающей в себя множество обратимых блоков, причем обученная основанная на условном потоке модель была обучена генерировать выходные данные на основе входных обусловливающих данных и входного шума;the server receiving a trained conditional flow-based model including a plurality of invertible blocks, wherein the trained conditional flow-based model has been trained to generate output based on the input conditioning data and the input noise; получение сервером необученной модели прямого распространения, включающей в себя множество необратимых блоков,the server receives an untrained forward propagation model, which includes many irreversible blocks, причем обученная основанная на условном потоке модель и необученная модель прямого распространения образуют сеть учитель-ученик;wherein the trained conditional flow-based model and the untrained feedforward model form a teacher-student network; выполнение процесса обучения в сети учитель-ученик, причем во время определенной итерации обучения процесса обучения:execution of the learning process in the teacher-student network, and during a certain iteration of the learning process: генерирование сервером связанных с учителем выходных данных посредством обученной основанной на условном потоке модели с использованием первых входных обусловливающих данных и первого входного шума,generating teacher-related output by the server via the trained conditional flow-based model using the first conditioning inputs and the first input noise, генерирование сервером связанных с учеником выходных данных посредством необученной модели прямого распространения с использованием первых входных обусловливающих данных и первого входного шума,generating the student-related output by the server via an untrained feedforward model using the first conditioning input and the first noise input, генерирование сервером значения потерь для данной итерации обучения с использованием связанных с учителем выходных данных и связанных с учеником выходных данных; иgenerating by the server a loss value for a given training iteration using the teacher-related output and the student-related output; And обучение сервером необученной модели прямого распространения посредством использования значения потерь для аппроксимации отображения между первым входным шумом и связанными с учителем выходными данными основанной на условном потоке модели;training the server on an untrained feedforward model by using a loss value to approximate a mapping between the first input noise and the teacher-associated output of the conditional flow-based model; получение сервером входных обусловливающих данных и входного шума; иthe server receiving input conditioning data and input noise; And использование сервером обученной модели прямого распространения вместо обученной основанной на условном потоке модели для генерирования выходных данных на основе входных обусловливающих данных и входного шума.The server uses a trained feedforward model instead of a trained conditional flow model to generate output based on the input conditioning data and the input noise. 9. Способ по п. 8, в котором обученная основанная на условном потоке модель представляет собой обученный основанный на условном потоке вокодер, при этом обученная модель прямого распространения представляет собой обученный вокодер прямого распространения, причем входные обусловливающие данные представляют собой спектрограмму, выходные данные представляют собой волновую форму.9. The method of claim 8, wherein the trained conditional flow-based model is a trained conditional flow-based vocoder, wherein the trained feedforward model is a trained feedforward vocoder, wherein the input conditioning data is a spectrogram, the output data is wave form. 10. Способ по п. 8, в котором обученная основанная на условном потоке модель представляет собой обученную основанную на условном потоке модель улучшения изображения, при этом обученная модель прямого распространения представляет собой обученную модель улучшения изображения прямого распространения, причем входные обусловливающие данные представляют собой первое изображение, выходные данные представляют собой второе изображение, причем второе изображение имеет более высокое разрешение, чем первое изображение.10. The method of claim 8, wherein the trained conditional flow-based model is a trained conditional flow-based image enhancement model, wherein the trained forward propagation model is a trained forward propagation image enhancement model, wherein the input conditioning data is a first image , the output is a second image, with the second image having a higher resolution than the first image. 11. Сервер генерирования волновой формы на основе спектрограммы и входного шума, причем спектрограмма была сгенерирована на основе текста, волновая форма является цифровым аудио представлением текста, причем сервер выполнен с возможностью:11. A server for generating a waveform based on a spectrogram and input noise, wherein the spectrogram was generated based on text, the waveform being a digital audio representation of the text, wherein the server is configured to: получения обученного основанного на потоке вокодера, включающего в себя множество обратимых блоков, причем обученный основанный на потоке вокодер был обучен генерировать волновую форму на основе спектрограммы и входного шума;obtaining a trained flow-based vocoder including a plurality of reversible blocks, wherein the trained flow-based vocoder has been trained to generate a waveform based on the spectrogram and the input noise; получения необученного вокодера прямого распространения, включающего в себя множество необратимых блоков,obtaining an untrained feed-forward vocoder including many irreversible blocks, причем обученный основанный на потоке вокодер и необученный вокодер прямого распространения образуют сеть учитель-ученик;wherein the trained flow-based vocoder and the untrained feedforward vocoder form a teacher-student network; выполнения процесса обучения в сети учитель-ученик, причем во время определенной итерации обучения процесса обучения сервер выполнен с возможностью:performing the learning process in a teacher-student network, and during a certain iteration of the learning process, the server is configured to: генерирования связанной с учителем волновой формы посредством обученного основанного на потоке вокодера с использованием первой спектрограммы и первого входного шума;generating a teacher-associated waveform via the trained flow-based vocoder using the first spectrogram and the first input noise; генерирования связанной с учеником волновой формы посредством необученного вокодера прямого распространения с использованием первой спектрограммы и первого входного шума;generating a student-related waveform through an untrained feedforward vocoder using the first spectrogram and the first input noise; генерирования значения потерь для данной итерации обучения с использованием связанной с учителем волновой формы и связанной с учеником волновой формы; иgenerating a loss value for a given training iteration using the teacher-related waveform and the student-related waveform; And обучения необученного вокодера прямого распространения генерировать волновую форму с использованием значения потерь для аппроксимации отображения между первым входным шумом и связанной с учителем волновой формы основанного на потоке вокодера;teaching the untrained feedforward vocoder to generate a waveform using a loss value to approximate the mapping between the first input noise and the teacher-associated waveform of the flow-based vocoder; получения спектрограммы и входного шума; иobtaining a spectrogram and input noise; And использования обученного вокодера прямого распространения вместо обученного основанного на потоке вокодера для генерирования волновой формы на основе спектрограммы и входного шума.using a trained feedforward vocoder instead of a trained flow-based vocoder to generate a waveform based on the spectrogram and input noise. 12. Сервер по п. 11, в котором спектрограмма представляет собой мел-масштабированную спектрограмму.12. The server of claim 11, wherein the spectrogram is a chalk-scaled spectrogram. 13. Сервер по п. 11, в котором входной шум представляет собой нормальное распределение значений шума.13. The server according to claim 11, wherein the input noise is a normal distribution of noise values. 14. Сервер по п. 11, при этом сервер дополнительно выполнен с возможностью сохранения обученного вокодера прямого распространения в хранилище.14. The server according to claim 11, wherein the server is additionally configured to store the trained direct propagation vocoder in storage. 15. Сервер по п. 11, в котором значение потерь представляет собой комбинацию значения основанных на восстановлении потерь и значения основанных на признаках потерь,15. The server of claim 11, wherein the loss value is a combination of the recovery-based loss value and the feature-based loss value, значение основанных на восстановлении потерь представляет различие между связанной с учителем волновой формой и связанной с учеником волновой формой, иthe value of the recovery-based loss represents the difference between the teacher-related waveform and the student-related waveform, and значение основанных на признаках потерь представляет различие между признаками связанной с учителем волновой формы и признаками связанной с учеником волновой формы.The value of the attribute-based losses represents the difference between the attributes of the teacher-related waveform and the attributes of the student-related waveform. 16. Сервер по п. 11, в котором обученный основанный на потоке вокодер представляет собой основанный на условном нормализующем потоке вокодер.16. The server of claim 11, wherein the trained flow-based vocoder is a conditional flow-normalizing vocoder. 17. Сервер по п. 11, в котором обученный вокодер прямого распространения представляет собой основанный на сверточной нейронной сети (CNN) вокодер.17. The server of claim 11, wherein the trained feedforward vocoder is a convolutional neural network (CNN)-based vocoder.
RU2021116052A 2021-06-03 2021-06-03 Method and server for waveform generation RU2803488C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/828,592 US20220392480A1 (en) 2021-06-03 2022-05-31 Method and a server for generating a waveform

Publications (2)

Publication Number Publication Date
RU2021116052A RU2021116052A (en) 2023-05-05
RU2803488C2 true RU2803488C2 (en) 2023-09-14

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2557469C2 (en) * 2009-04-16 2015-07-20 Юниверсите Де Монс Speech synthesis and coding methods
RU2632424C2 (en) * 2015-09-29 2017-10-04 Общество С Ограниченной Ответственностью "Яндекс" Method and server for speech synthesis in text
US20190355347A1 (en) * 2018-05-18 2019-11-21 Baidu Usa Llc Spectrogram to waveform synthesis using convolutional networks
US20200402497A1 (en) * 2019-06-24 2020-12-24 Replicant Solutions, Inc. Systems and Methods for Speech Generation
US20210110810A1 (en) * 2017-10-19 2021-04-15 Baidu Usa Llc Waveform generation using end-to-end text-to-waveform system
US11017761B2 (en) * 2017-10-19 2021-05-25 Baidu Usa Llc Parallel neural text-to-speech

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2557469C2 (en) * 2009-04-16 2015-07-20 Юниверсите Де Монс Speech synthesis and coding methods
RU2632424C2 (en) * 2015-09-29 2017-10-04 Общество С Ограниченной Ответственностью "Яндекс" Method and server for speech synthesis in text
US20210110810A1 (en) * 2017-10-19 2021-04-15 Baidu Usa Llc Waveform generation using end-to-end text-to-waveform system
US11017761B2 (en) * 2017-10-19 2021-05-25 Baidu Usa Llc Parallel neural text-to-speech
US20190355347A1 (en) * 2018-05-18 2019-11-21 Baidu Usa Llc Spectrogram to waveform synthesis using convolutional networks
US20200402497A1 (en) * 2019-06-24 2020-12-24 Replicant Solutions, Inc. Systems and Methods for Speech Generation

Similar Documents

Publication Publication Date Title
US11862142B2 (en) End-to-end text-to-speech conversion
US11948066B2 (en) Processing sequences using convolutional neural networks
US11869530B2 (en) Generating audio using neural networks
CN109844773B (en) Processing sequences using convolutional neural networks
US10810993B2 (en) Sample-efficient adaptive text-to-speech
US20210089909A1 (en) High fidelity speech synthesis with adversarial networks
US20200410344A1 (en) Fast decoding in sequence models using discrete latent variables
CN114467096A (en) Enhancing attention-based neural networks to selectively focus on past inputs
US20230013370A1 (en) Generating audio waveforms using encoder and decoder neural networks
Zhang Voice keyword retrieval method using attention mechanism and multimodal information fusion
JP7393585B2 (en) WaveNet self-training for text-to-speech
RU2803488C2 (en) Method and server for waveform generation
US20220392480A1 (en) Method and a server for generating a waveform
Cheng et al. A DenseNet-GRU technology for Chinese speech emotion recognition
WO2023226239A1 (en) Object emotion analysis method and apparatus and electronic device
CN117392284B (en) Self-adaptive condition enhanced text image generation method, system, device and medium
US20210383790A1 (en) Training speech synthesis neural networks using energy scores
RU2775821C2 (en) Method and server for converting text to speech
US20220084499A1 (en) Method and server for a text-to-speech processing
WO2023102931A1 (en) Method for predicting prosodic structure, and electronic device, program product and storage medium
CN116958343A (en) Facial animation generation method, device, equipment, medium and program product
CN115273803A (en) Model training method and device, speech synthesis method, equipment and storage medium
CN114141259A (en) Voice conversion method, device, equipment, storage medium and program product
CN117121099A (en) Adaptive visual speech recognition
CN116631433A (en) Audio separation method, device, electronic equipment and storage medium