Василиса▶ Я жду вашего обращения. Что Вы хотите узнать?
Логотип
Сущность ⇔ страница
Текст:

Дневник разработки синтезатора речи для Василиса ЯВИКС.


Дневник реализации. (bts1011)
  • 2017.04.27

    Начало проекта.
    Цель проекта: научить Василису говорить.
    Ознакомился с основами синтеза речи.
    Синтез речи.
    формат RIFF.
    формат WAV.
    Ru_tts - синтезатор русской речи для Linux.

  • 2017.04.28
    Размышления на тему как делать синтезатор.
    1. Какой метод выбрать?
       Вот перечень для анализа:
        -параметрический синтез;
        -конкатенативный, или компиляционный (компилятивный) синтез;
        -полный синтез речи по правилам (или синтез по печатному тексту) ;
        -предметно-ориентированный синтез.
       Отметаем параметрический синтез т.к. параметрический синтез не может применяться для произвольных, заранее не заданных сообщений.
       В источниках есть много информации о трудностях с качеством результата компиляционного синтеза, поэтому отметаем его тоже.
       Предметно-ориентированный синтез не годится для произвольного текста, отметаем.
       Полный синтез речи по правилам (или синтез по печатному тексту): 
           -артикуляторный синтез;
           -формантный синтез по правилам.
    
            Формантный синтез речи по правилам с использованием предварительно запомненных отрезков естественного языка:
              -микросегментный (микроволновый);
              -аллофонический;
              -дифонный;
              -полуслоговой;
              -слоговой;
              -синтез из единиц произвольного размера.
            (При этом можно синтезировать речь по заранее не заданному тексту, но трудно управлять интонационными характеристиками.  Качество такого синтеза не соответствует качеству естественной речи, поскольку на границах сшивки дифонов часто возникают искажения. Компиляция речи из заранее записанных словоформ также не решает проблемы высококачественного синтеза произвольных сообщений, поскольку  акустические и просодические (длительность и интонация) характеристики слов изменяются в зависимости от типа фразы и места слова во фразе. Это положение не меняется даже при использовании больших объёмов памяти для хранения словоформ)
       Отметаем  Формантный синтез речи по правилам.
       Остается  артикуляторный синтез.  
    2. Исследование артикуляторного синтеза. 
       ВОЗМОЖНОСТИ МЕТОДОВ МОДЕЛИРОВАНИЯ ГОЛОСОВОГО ИСТОЧНИКА В СИСТЕМАХ СИНТЕЗА РЕЧИ   
       Задача синтеза речи
       Рассуждения:
       сначала факты:
       - человек произносит слово мама (громко, тихо, растяжно, коротко, мужчина, женщина) другой человек 
         всё равно понимает что это мама.
       Вывод - информация не зависит ни от громкости, ни от длительности, ни от тембра.
       Следовательно можно рассмотреть некий нормированный сигнал который соответствует 
       восприятию человеческим ухом как слово мама, а затем окрасить его тембором, высотой, громкостью, растяжкой.
       Как получить этот сигнал?
       если рассмотреть любой реальный сэмпл с отдельным словом через аудио редактор мы увидим некоторый график колеблящийся 
       относительно оси Х с разной частотой и амплитудой.
       Предположим, что мы разработаем некий конструктор который сможет по некоторому текстовому описанию построить 
       подобную кривую.
       Следовательно мы получим текстовое отображение конкретного сэмпла.
       Далее мы можем для каждого слова построить нормированный сигнал а затем соеденить их в фразу.
       Предварительный разбор фразы даст возможность раскрасить нормированное её представление высотой, тембром, растяжкой, громкостью,ударением.
       Попробуем разработать этот конструктор:
       1. введем понятие фрагмент сэмпла (ФС) - это часть нормированного сигнала описанного текстовым выражением заключенным в {фрагмент}
          перед { может стоять число - которое указывает на кол-во повторов фрагмента сэмплов описанного в {}
       2. все характеристики фрагнмента измеряются в %  от 0-100 в целых числах
       3. фрагмент состоит из двух частей  верхней и нижней
       4. описание верхней части отделяется от нижней ;
       5. по умолчанию диапазон фрагмента устанавливается 100% и делится на 2 по 50%
          на верхний 50% и нижний 50%
       6. мах амплитуда верхней и нижней части устанавливается по 100%           
       7. 10{50,60;50,100} - говорит конструктору построить верхнюю часть синусоиды с ампитудой 60% а нижнюю с амплитудой 100%
          причем точка пересечения будет лежать точно посередине.
       8. конструктор принимает последовательность описаний фрагментов сэмплов и строит кривую.
       9. конструктор должен понимать мнемонику например:
          ма=10(2{50,60;50,100}3{20,60;80,100})
          бамама=10(2{50,60;50,100}3{20,60;80,100}2ма)
       10. если на верхней или нижней части есть колебания то делаем вложенный фрагмент
          вложенный фрагмент - это [] внутри которых указываются фрагменты которые показавают отклонения от 
          кривой основного фрагмента если бы она была осью   
        
       
       И так ,всё готово для написания этого конструктора.
       Начнем с написания функций чтения и записи wav формата.
       
       - 
    
    
    
  • 2017.05.03

    Функция по просмотру файла типа .wav
    Образец находится в файле /home/pau/work/tts/ma_ru.wav
    {+(>действие<=>показать<)(>клиент<=>файл<)(>тип данных<=>wave<)(>файл<=>[>/home/pau/work/tts/ma_ru.wav<]<)+} 
    
    
    
    

  • 2017.07.10

    ФС всегда начинается с 0 амплитуды
     Выберем длину нормированного элемента - 64 чисел по 2 байта -128 байт
    Это значит, что нормированный ФС мы будем представлять 128 байтами в случае 100% 
    интерпретации.
    
    
    
    
    
    
    


Cвойства:
страницы ⇔ документации Василисы ЯВИКС
дата ⇔ 27. 04. 2017
страницы ⇔ дневники Василисы ЯВИКС
FF ⇔ bts1011
© 2014-2018 ЯВИКС - все права защищены.
Наши контакты/Карта ссылок