IP Library Granted Patent US 12,603,081
Granted Patent B2
US 12,603,081 · App. 17/475,724 · Granted Apr 14, 2026

Method and server for a text-to-speech processing

Inventors: Dmitry Mikhailovich Chernenkov (Moscow, RU); Vladimir Vladimirovich Kirichenko (Moscow, RU); Ivan Sergeevich Baskov (Krasnodar, RU); Sergey Nazimovich Dzhunusov (Moscow, RU)
Assignee: Y.E. Hub Armenia LLC
G10L13/047G06N3/04G06N3/0464G10L25/30
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,603,081
App. No.
17/475,724
Granted
Apr 14, 2026
Kind
B2
Abstract

Methods and servers for processing a textual input for generating an audio output are disclosed. The audio output is a sequence of waveform segments generated in real-time by a trained Convolutional Neural Network. The method includes, at a given iteration, generating a given waveform segment which includes storing first tensor data computed by a first hidden layer during the given iteration, and where the first tensor data has tensor-chunk data. The tensor-chunk data is used during the given iteration for generating the given waveform segment and is to be used during a next iteration for generating a next waveform segment. The method includes, at the next iteration, generating the next waveform segment, which comprises storing second tensor data computed by the first hidden layer during the next iteration. The second tensor data excludes redundant tensor-chunk data that is identical to the tensor-chunk data from the first tensor data.

Claims (50)

1 . A method of performing text-to-speech (TTS) processing of a textual input for generating an audio output, the audio output to be provided to a user of an electronic device and comprising a plurality of sequential waveform segments, the electronic device being communicatively coupled to a server,

a given one of the plurality of sequential waveform segments to be generated in real-time during a respective in-use iteration of a trained Convolutional Neural Network (CNN),

the CNN comprising at least a first hidden layer and a second hidden layer, the second hidden layer being sequential to the first hidden layer, the second hidden layer being configured to generate tensor data based on tensor data generated by the first hidden layer during a respective in-use iteration of the CNN,

the method executable by the server, the method comprising:

generating, by the server, CNN input data based on the textual input,

the CNN input data being associated with respective timestamps, the timestamps to be used for determining iteration-specific input data for a respective in-use iteration of the CNN;

at a given in-use iteration of the CNN:

generating, by the server employing the CNN, a given waveform segment of the audio output based on first iteration-specific data available for the given in-use iteration, the generating comprising:

storing, in a memory, first tensor data computed by the first hidden layer during the given in-use iteration, the first tensor data having tensor-chunk data,

the tensor-chunk data (i) being used during the given in-use iteration for generating the given waveform segment of the audio output and (ii) to be used during a next in-use iteration of the CNN for generating a next waveform segment of the audio output,

 the tensor-chunk data being identifiable by a start-position of the tensor-chunk data in the memory and an end-position of the tensor-chunk data in the memory;

at the next in-use iteration of the CNN:

generating, by the server employing the CNN, the next waveform segment of the audio output based on second iteration-specific data available for the next in-use iteration and a portion of the first iteration-specific data, the generating comprising:

storing, in the memory, second tensor data computed by the first hidden layer during the next in-use iteration,

the second tensor data being stored in the memory sequentially to the first tensor data of the first hidden layer from the given in-use iteration,

 the second tensor data excluding a redundant tensor-chunk data, the redundant tensor-chunk data being identical to the tensor-chunk data from the first tensor data,

  the second tensor data being identifiable by a start-position of the second tensor data in the memory and an end-position of the second tensor data in the memory,

   the start-position of the second tensor data corresponding to the end-position of the tensor- chunk data in the memory;

applying, by the server, a convolution filter of the second hidden layer on (i) the tensor-chunk data from the first tensor data and (ii) the second tensor data stored in the memory,

thereby generating third tensor data by the second hidden layer to be stored in the memory, the third tensor data being used for generating the next waveform segment of the audio output; and

storing, by the server, the third tensor data in the memory,

wherein the memory comprises a layer-dedicated memory space for a respective hidden layer of the CNN,

the layer-dedicated memory space being defined by boundaries in the memory,

a first boundary being indicative of a start-position of the respective layer-dedicated memory space in the memory and a second boundary being indicative of an end- position of the respective layer-dedicated memory space in the memory,

the layer-dedicated memory space for a respective hidden layer being configured to store tensor data generated by the respective hidden layer during in-use iterations of the CNN,

wherein:

a pair of flags associated with a first layer-dedicated memory space for the first hidden layer are used when storing data generated by the first hidden layer,

the pair of flags being within the boundaries of the first layer-dedicated memory space,

a pair of other flags associated with a second layer-dedicated memory space for the second hidden layer are used for storing data generated by the second hidden layer,

the pair of other flags being within the boundaries of the second layer-dedicated memory space, and

wherein the pair of flags comprises a first flag and a second flag and the pair of other flags comprise a third flag and a fourth flag,

after the given in-use iteration:

the first flag being located a first position corresponding to the start-position of the tensor- chunk data in the memory and the second flag being located at a second position corresponding to the end-position of the tensor-chunk data in the memory,

the third flag being located at a third position in the second layer-dedicated memory space and the fourth flag being located at a fourth position in the second layer-dedicated memory space,

during the next in-use iteration:

the storing the second tensor data computed by the first hidden layer comprises:

moving the second flag to a new second position in the memory, the second tensor data being stored in the memory between the second position and the new second position,

the tensor-chunk data and the second tensor data being stored sequentially in the memory between the first position of the first flag corresponding to the start-position of the tensor-chunk data and the new second position of the second flag,

the applying the convolutional filter on (i) the tensor-chunk data from the first tensor data and (ii) the second tensor data comprises:

applying the convolutional filter on data stored in the memory between the first position of the first flag and the new second position of the second flag,

the storing the third tensor data in the memory comprises:

moving the fourth flag to a new fourth position in the memory, the third tensor data being stored in the memory between the fourth position and the new fourth position.

2 . The method of claim 1 , wherein the CNN input data is in a form of a spectrogram.

3 . The method of claim 2 , wherein the CNN input data is generated by an other trained model, the other trained model configured to transform textual input into a spectrogram output.

4 . The method of claim 1 , wherein the memory is from a GPU-type memory device.

5 . The method of claim 1 , wherein the first hidden layer has an activation function, the tensor-chunk data from the first tensor data generated during the given in-use iteration being an output of the activation function.

6 . The method of claim 1 , wherein a size of the first tensor data in the memory depends on an amount of iteration-specific data available for the given in-use iteration.

7 . The method of claim 1 , wherein a size of the second tensor data in the memory depends on an amount of the second iteration-specific data available for the next in-use iteration.

8 . The method of claim 1 , wherein a size of the tensor-chunk data in the memory has been determined based on hyper parameters of the convolutional filter of the second hidden layer.

9 . The method of claim 8 , wherein the hyper parameters include at least some of: a kernel size parameter, a stride parameter, and a dilation parameter.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2024
From: DIRECT CURSUS TECHNOLOGY L.L.C
To: Y.E. HUB ARMENIA LLC
Reel/Frame 068534/0687 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2023
From: YANDEX EUROPE AG
To: DIRECT CURSUS TECHNOLOGY L.L.C
Reel/Frame 065692/0720 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2021
From: CHERNENKOV, DMITRY MIKHAILOVICH; KIRICHENKO, VLADIMIR VLADIMIROVICH; BASKOV, IVAN SERGEEVICH; DZHUNUSOV, SERGEY NAZIMOVICH
To: YANDEX.TECHNOLOGIES LLC
Reel/Frame 057487/0652 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2021
From: YANDEX.TECHNOLOGIES LLC
To: YANDEX LLC
Reel/Frame 057487/0730 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2021
From: YANDEX LLC
To: YANDEX EUROPE AG
Reel/Frame 057487/0803 →
Priority Claims (1)
RU 2020130360 · Sep 15, 2020 · national
Continuity (1)
Related Publication 20220084499A1 · Mar 17, 2022
References Cited (29)
US 11232016B1 · Huynh · 2022 [cited by examiner]
US 20080183473A1 · Nagano et al. · 2008 [cited by applicant]
US 20160171974A1 · Hannun et al. · 2016 [cited by applicant]
US 20180253635A1 · Park · 2018 [cited by examiner]
US 20190042092A1 · Wu · 2019 [cited by examiner]
US 20190114547A1 · Jaganathan · 2019 [cited by examiner]
US 20190180732A1 · Ping et al. · 2019 [cited by applicant]
US 20190362703A1 · Ijima et al. · 2019 [cited by applicant]
US 20200027026A1 · Cook · 2020 [cited by examiner]
US 20200082806A1 · Kim et al. · 2020 [cited by applicant]
US 20200342852A1 · Kim et al. · 2020 [cited by applicant]
US 20200402497A1 · Semenov et al. · 2020 [cited by applicant]
US 20210090549A1 · Lombardo · 2021 [cited by examiner]
US 20210209442A1 · Jiao · 2021 [cited by examiner]
RU 2488232C2 · 2013 [cited by applicant]
WO 9904386A1 · 1999 [cited by applicant]
WO 2020118521A1 · 2020 [cited by applicant]
NVIDIA Geforce GTX 1080 Press Release, archived on May 9, 2016, and available at https://web.archive.org/web/20160509062338/https://nvidianews.nvidia.com/news/a-quantum-leap-in-gaming:-nvidia-introduces-geforce-gtx-1080… [cited by examiner]
Riera, Marc, et al. “Computation reuse in DNNs by exploiting input similarity.” 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA). IEEE, 2018, pp. 57-68 (Year: 2018). [cited by examiner]
Jin, Tian, et al. “Split-cnn: Splitting window-based operations in convolutional neural networks for memory system optimization.” Proceedings of the Twenty-Fourth International Conference on Architectural Support for Pr… [cited by examiner]
Ning, Lin, et al. “Deep reuse: Streamline CNN inference on the fly via coarse-grained computation reuse.” Proceedings of the ACM International Conference on Supercomputing. 2019, pp. 438-448 (Year: 2019). [cited by examiner]
Willis, Andrew, et al. “Measuring compute-reuse opportunities for video processing acceleration.” 2019 SoutheastCon. IEEE, 2019, pp. 1-7 (Year: 2019). [cited by examiner]
Angrick et al., “Speech synthesis from ecog using densely connected 3d convolutional neural networks”, Published on Nov. 27, 2018, DOI: 10.1088/1741-2552/ab0c59, https://pubmed.ncbi.nlm.nih.gov/30831567/. [cited by applicant]
Mwiti, “A 2019 Guide to Speech Synthesis with Deep Learning”, Published on Aug. 28, 2019, https://heartbeat.fritz.ai/a-2019-guide-to-speech-synthesis-with-deep-learning-630afcafb9dd. [cited by applicant]
Salah et al., “Continuous vocoder in feed-forward deep neural network based speech synthesis”, Published as a conference paper : Digital Speech and image processing (DOGS_2017), at Serbia, Novi Sad on Nov. 2017. [cited by applicant]
Ping et al. “ClariNet: Parallel Wave Generation in End-to-End Text-to-Speech”, Feb. 22, 2019; https://arxiv.org/pdf/1807.07281.pdf, 15 pages. [cited by applicant]
Song, “Efficient WaveGlow: An Improved WaveGlow Vocoder with Enhanced Speed”, Interspeech 2020, Oct. 25-29, 2020, Shanghai, China. [cited by applicant]
Wang, “KDGAN: Knowledge Distillation with Generative Adversarial Networks”, 32nd Conference on Neural Information Processing Systems (NeurIPS 2018), Dec. 2-8, 2018, Montréal, Canada. [cited by applicant]
Russian Search Report dated Jan. 18, 2022 issued in respect of the counterpart Russian Patent Application No. RU 2020130360. [cited by applicant]