Заказ закрыт
Усилить громкость воспроизведения синтезированной речи (SpeechSynthesizer)

Бюджет: 2 500 руб
33.88 $ – 28.61 €
Заказчик выбрал исполнителя:
Евгений Коноплёв  
Есть небольшой проект "IncreaseVoiceTest" (WinForms), написанный на языке С#, в котором, при нажатии на кнопку, классом SpeechSynthesizer синтезируется человеческая речь и, затем, воспроизводится.

Несмотря на то, что "уровень громкости" синтезатора речи и объекта воспроизведения аудиосигнала установлен в максимальное значение –  этого недостаточно и требуется, чтобы синтезированная речь звучала "громче" (имела большую амплитуда звукового сигнала).

Этого можно достичь, увеличив значение у семплов аудиосигнала. В коде проекта есть примеры синтеза речи, способа усиления звука аудиосигнала, и вывода звука на выбранное устройство. Для успешного выполнения задачи нужно, по сути просто, "объединить" эти механизмы.  

Для лучшего понимая предметной области, в этом проекте есть несколько способом воспроизведения речи:

1. Кнопка "Простое воспроизведение" – SpeechSynthesizer генерирует фразу "Тестовое сообщение" и озвучивает её аудиоустройством, установленным по умолчанию. 

2. Кнопка "Воспроизведение в аудио-поток" – SpeechSynthesizer генерирует фразу "Тестовое сообщение", и сформированный аудиосигнал записывается в MemoryStream, который затем передаётся в WasapiOut, который уже проигрывает его на выбранном аудиоустройстве. 

3. Кнопка "Воспроизведение в файл с усилением" – SpeechSynthesizer генерирует фразу "Тестовое сообщение", и сформированный аудиосигнал записывается в MemoryStream, который конвертируется в  WavData, где звучание сэмплов усиливается, но результат записывается в wav-файл на жестком диске.  

Это, практически то, что требуется, но "усиленный" аудиосигнал не должен быть записан в файл, а должен быть отправлен на "звучание" в объект WasapiOut

4. Кнопка "Воспроизведение в поток с усилением" – код там незавершен. Однако, там должен быть код, отвечающий требованиям поставленной задачи:

– Речь должна синтезироваться объектом класса SpeechSynthesizer 
– Аудиосигнал должен быть усилен в N-раз, несмотря на то, что громкость SpeechSynthesizer и WasapiOut и так уже выставлена в максимальное значение. 
– Усиленный аудиосигнал должен проигрываться объектом класса WasapiOut  (на выбранном устройстве)
– В ходе преобразований, никакой записи данных в файл, на жестком диске, не должно происходить
– Можно использовать класс WavData

Таким образом, задача будет считаться выполненной, если будут соблюдены все указанные требования, и при нажатии на кнопку "Воспроизведение в поток с усилением" будут звучать синтезированная речь, более громкая в N-раз, чем воспроизведенная речь по второй кнопке. 

Описание пользовательского интерфейса программы:

1) Список доступных устройств для воспроизведения речи, при нажатии на вторую или на четвертую кнопку
2) Текстовое поле для ввода значения коэффициента усиления сэмплов аудиосигнала.
3) Кнопки запускающие синтез речи. 

К файлам задачи помещен код проекта "IncreaseVoiceTest", где необходимо выполнить доработку.
Опубликован 15.10.2024 в 23:51
Заказ находится в архиве

Выберите способ верификации:

Обновите страницу после прохождения верификации.