СПОСОБ И СЕРВЕР ДЛЯ ПРЕОБРАЗОВАНИЯ ТЕКСТА В РЕЧЬ

1. Способ преобразования текста в речь, выполняемого в отношении текстового ввода для формирования звукового вывода, содержащего множество последовательных сегментов сигнала и предоставляемого пользователю электронного устройства, соединенного с сервером, где сегмент из множества последовательных сегментов сигнала формируется в реальном времени на соответствующей итерации этапа использования обученной сверточной нейронной сети (CNN), содержащей по меньшей мере первый скрытый слой и второй скрытый слой, следующий за первым скрытым слоем и способный формировать данные тензора на основе данных тензора, сформированных первым скрытым слоем на соответствующей итерации этапа использования сети CNN, при этом способ выполняется сервером и включает в себя:
- формирование сервером на основе текстового ввода входных данных сети CNN, связанных с соответствующими отметками времени, используемыми для определения предназначенных для итерации входных данных для соответствующей итерации этапа использования сети CNN;
- на текущей итерации этапа использования сети CNN: формирование сервером, использующим сеть CNN, сегмента сигнала звукового вывода на основе первых предназначенных для итерации данных, доступных для этой итерации этапа использования, при этом формирование включает в себя сохранение в памяти первых данных тензора, рассчитанных первым скрытым слоем на этой итерации этапа использования и содержащих данные фрагмента тензора, которые (а) используются на этой итерации этапа использования для формирования сегмента сигнала звукового вывода и (б) подлежат использованию на следующей итерации этапа использования сети CNN для формирования следующего сегмента сигнала звукового вывода и идентифицируются с использованием начальной позиции данных фрагмента тензора в памяти и конечной позиции данных фрагмента тензора в памяти;
- на следующей итерации этапа использования сети CNN: формирование сервером, использующим сеть CNN, следующего сегмента сигнала звукового вывода на основе вторых предназначенных для итерации данных, доступных для следующей итерации этапа использования, и части первых предназначенных для итерации данных, при этом формирование включает в себя сохранение в памяти вторых данных тензора, рассчитанных первым скрытым слоем на следующей итерации этапа использования, которые хранятся в памяти последовательно с первыми данными тензора первого скрытого слоя с текущей итерации этапа использования, не содержат избыточных данных фрагмента тензора, идентичных данным фрагмента тензора из первых данных тензора, и идентифицируются с использованием начальной позиции вторых данных тензора в памяти и конечной позиции вторых данных тензора в памяти, причем начальная позиция вторых данных тензора соответствует конечной позиции данных фрагмента тензора в памяти;
- применение сервером сверточного фильтра второго скрытого слоя в отношении (а) данных фрагмента тензора из первых данных тензора и (б) вторых данных тензора, хранящихся в памяти, и формирования таким образом вторым скрытым слоем третьих данных тензора, подлежащих сохранению в памяти и используемых для формирования следующего сегмента сигнала звукового вывода; и
- сохранение сервером третьих данных тензора в памяти.
2. Способ по п. 1, отличающийся тем, что входные данные сети CNN представляются в виде спектрограммы.
3. Способ по п. 2, отличающийся тем, что входные данные сети CNN формируются другой обученной моделью, способной преобразовывать текстовый ввод в выходные данные спектрограммы.
4. Способ по п. 1, отличающийся тем, что память содержится в запоминающем устройстве графического процессора.
5. Способ по п. 1, отличающийся тем, что первый скрытый слой имеет функцию активации, а данные фрагмента тензора из первых данных тензора, сформированных на текущей итерации этапа использования, представляют собой выходные данные функции активации.
6. Способ по п. 1, отличающийся тем, что размер первых данных тензора в памяти зависит от количества предназначенных для итерации данных, доступных для текущей итерации этапа использования.
7. Способ по п. 1, отличающийся тем, что размер вторых данных тензора в памяти зависит от количества вторых предназначенных для итерации данных, доступных для следующей итерации этапа использования.
8. Способ по п. 1, отличающийся тем, что размер данных фрагмента тензора в памяти определен на основе гиперпараметров сверточного фильтра второго скрытого слоя.
9. Способ по п. 8, отличающийся тем, что гиперпараметры включают в себя параметр размера ядра и/или параметр шага и/или параметр дилатации.
10. Способ по п. 1, отличающийся тем, что память содержит выделенную для слоя область памяти, предназначенную для соответствующего скрытого слоя сети CNN и определяемую границами в памяти, при этом первая граница указывает на начальную позицию в памяти соответствующей выделенной для слоя области памяти, вторая граница указывает на конечную позицию в памяти соответствующей выделенной для слоя области памяти, а выделенная для слоя область памяти, предназначенная для соответствующего скрытого слоя, способна хранить данные тензора, сформированные соответствующим скрытым слоем на итерациях этапа использования сети CNN.
11. Способ по п. 10, отличающийся тем, что при сохранении данных, сформированных первым скрытым слоем, используется пара флагов, связанная с первой выделенной для слоя областью памяти, предназначенной для первого скрытого слоя, и расположенная в границах первой выделенной для слоя области памяти, а при сохранении данных, сформированных вторым скрытым слоем, используется пара других флагов, связанная со второй выделенной для слоя областью памяти, предназначенной для второго скрытого слоя, и расположенная в границах второй выделенной для слоя области памяти.
12. Способ по п. 11, отличающийся тем, что пара флагов содержит первый флаг и второй флаг, а пара других флагов содержит третий флаг и четвертый флаг, при этом:
- после текущей итерации этапа использования: первый флаг расположен в первой позиции, соответствующей начальной позиции данных фрагмента тензора в памяти, второй флаг расположен во второй позиции, соответствующей конечной позиции данных фрагмента тензора в памяти, третий флаг расположен в третьей позиции во второй выделенной для слоя области памяти, а четвертый флаг расположен в четвертой позиции во второй выделенной для слоя области памяти,
- на следующей итерации этапа использования:
- сохранение вторых данных тензора, рассчитанных первым скрытым слоем, включает в себя перемещение второго флага в новую вторую позицию в памяти, при этом вторые данные тензора сохраняются в памяти между второй позицией и новой второй позицией, данные фрагмента тензора и вторые данные тензора сохраняются последовательно в памяти между первой позицией первого флага, соответствующей начальной позиции данных фрагмента тензора, и новой второй позицией второго флага;
- применение сверточного фильтра в отношении (а) данных фрагмента тензора из первых данных тензора и (б) вторых данных тензора включает в себя применение сверточного фильтра в отношении данных, сохраненных в памяти между первой позицией первого флага и новой второй позицией второго флага;
- сохранение третьих данных тензора в памяти включает в себя перемещение четвертого флага в новую четвертую позицию в памяти, при этом третьи данные тензора сохраняются в памяти между четвертой позицией и новой четвертой позицией.
13. Сервер для преобразования текста в речь, выполняемого в отношении текстового ввода для формирования звукового вывода, содержащего множество последовательных сегментов сигнала и предоставляемого пользователю электронного устройства, соединенного с сервером, где сегмент из множества последовательных сегментов сигнала должен формироваться в реальном времени на соответствующей итерации этапа использования обученной сети CNN, содержащей по меньшей мере первый скрытый слой и второй скрытый слой, следующий за первым скрытым слоем и способный формировать данные тензора на основе данных тензора, сформированных первым скрытым слоем на соответствующей итерации этапа использования сети CNN, при этом сервер выполнен с возможностью:
- формирования входных данных сети CNN на основе текстового ввода, связанных с соответствующими отметками времени, используемыми для определения предназначенных для итерации входных данных для соответствующей итерации этапа использования сети CNN;
- на текущей итерации этапа использования сети CNN: формирования с использованием сети CNN сегмента сигнала звукового вывода на основе первых предназначенных для итерации данных, доступных для этой итерации этапа использования, при этом для формирования сервер способен сохранять в памяти рассчитанные первым скрытым слоем на этой итерации этапа использования первые данные тензора, содержащие данные фрагмента тензора, которые (а) используются на этой итерации этапа использования для формирования сегмента сигнала звукового вывода, (б) подлежат использованию на следующей итерации этапа использования сети CNN для формирования следующего сегмента сигнала звукового вывода и могут быть идентифицированы с использованием начальной позиции данных фрагмента тензора в памяти и конечной позиции данных фрагмента тензора в памяти;
- на следующей итерации этапа использования сети CNN: формирования с использованием сети CNN следующего сегмента сигнала звукового вывода на основе вторых предназначенных для итерации данных, доступных для следующей итерации этапа использования, и части первых предназначенных для итерации данных, при этом для формирования сервер способен сохранять в памяти рассчитанные первым скрытым слоем на следующей итерации этапа использования вторые данные тензора, которые хранятся в памяти последовательно с первыми данными тензора первого скрытого слоя с текущей итерации этапа использования, не содержат избыточных данных фрагмента тензора, идентичных данным фрагмента тензора из первых данных тензора, и идентифицируются с использованием начальной позиции вторых данных тензора в памяти и конечной позиции вторых данных тензора в памяти, причем начальная позиция вторых данных тензора соответствует конечной позиции данных фрагмента тензора в памяти;
- применения сверточного фильтра второго скрытого слоя в отношении (а) данных фрагмента тензора из первых данных тензора и (б) вторых данных тензора, хранящихся в памяти, и формирования таким образом вторым скрытым слоем третьих данных тензора, подлежащих сохранению в памяти и используемых для формирования следующего сегмента сигнала звукового вывода; и
- сохранения третьих данных тензора в памяти.
14. Сервер по п. 13, отличающийся тем, что входные данные сети CNN представлены в виде спектрограммы.
15. Сервер по п. 14, отличающийся тем, что входные данные сети CNN сформированы другой обученной моделью, способной преобразовывать текстовый ввод в выходные данные спектрограммы.
16. Сервер по п. 13, отличающийся тем, что память содержится в запоминающем устройстве графического процессора.
17. Сервер по п. 13, отличающийся тем, что первый скрытый слой имеет функцию активации, а данные фрагмента тензора из первых данных тензора, сформированных на текущей итерации этапа использования, представляют собой выходные данные функции активации.
18. Сервер по п. 13, отличающийся тем, что размер первых данных тензора в памяти зависит от количества предназначенных для итерации данных, доступных для текущей итерации этапа использования.
19. Сервер по п. 13, отличающийся тем, что размер вторых данных тензора в памяти зависит от количества вторых предназначенных для итерации данных, доступных для следующей итерации этапа использования.
20. Сервер по п. 13, отличающийся тем, что размер данных фрагмента тензора в памяти определен на основе гиперпараметров сверточного фильтра второго скрытого слоя.
21. Сервер по п. 20, отличающийся тем, что гиперпараметры включают в себя параметр размера ядра и/или параметр шага и/или параметр дилатации.
22. Сервер по п. 13, отличающийся тем, что память содержит выделенную для слоя область памяти, предназначенную для соответствующего скрытого слоя сети CNN и определяемую границами в памяти, при этом первая граница указывает на начальную позицию в памяти соответствующей выделенной для слоя области памяти, вторая граница указывает на конечную позицию в памяти соответствующей выделенной для слоя области памяти, а выделенная для слоя область памяти, предназначенная для соответствующего скрытого слоя, способна хранить данные тензора, сформированные соответствующим скрытым слоем на итерациях этапа использования сети CNN.
23. Сервер по п. 22, отличающийся тем, что при сохранении данных, сформированных первым скрытым слоем, используется пара флагов, связанная с первой выделенной для слоя областью памяти, предназначенной для первого скрытого слоя, и расположенная в границах первой выделенной для слоя области памяти, а при сохранении данных, сформированных вторым скрытым слоем, используется пара других флагов, связанная со второй выделенной для слоя областью памяти, предназначенной для второго скрытого слоя, и расположенная в границах второй выделенной для слоя области памяти.
24. Сервер по п. 23, отличающийся тем, что пара флагов содержит первый флаг и второй флаг, а пара других флагов содержит третий флаг и четвертый флаг, при этом:
- после текущей итерации этапа использования: первый флаг расположен в первой позиции, соответствующей начальной позиции данных фрагмента тензора в памяти, второй флаг расположен во второй позиции, соответствующей конечной позиции данных фрагмента тензора в памяти, третий флаг расположен в третьей позиции во второй выделенной для слоя области памяти, а четвертый флаг расположен в четвертой позиции во второй выделенной для слоя области памяти;
- на следующей итерации этапа использования:
- для сохранения вторых данных тензора, рассчитанных первым скрытым слоем, сервер способен перемещать второй флаг в новую вторую позицию в памяти, при этом вторые данные тензора сохраняются в памяти между второй позицией и новой второй позицией, данные фрагмента тензора и вторые данные тензора сохраняются последовательно в памяти между первой позицией первого флага, соответствующей начальной позиции данных фрагмента тензора, и новой второй позицией второго флага;
- для применения сверточного фильтра в отношении (а) данных фрагмента тензора из первых данных тензора и (б) вторых данных тензора сервер способен применять сверточный фильтр в отношении данных, сохраненных в памяти между первой позицией первого флага и новой второй позицией второго флага;
- для сохранения третьих данных тензора в памяти сервер способен перемещать четвертый флаг в новую четвертую позицию в памяти, при этом третьи данные тензора сохраняются в памяти между четвертой позицией и новой четвертой позицией.