0 / 0 / 0
Регистрация: 24.07.2013
Сообщений: 45
1

Модификатор голоса на базе DSP (например, на ADSP2181)

22.02.2014, 01:05. Показов 1362. Ответов 4
Метки нет (Все метки)

Доброго времени суток, уважаемые прогеры! Прошу вашей помощи и совета!

В общем, намедни задался целью сваять девайс "Модификатор голоса" на базе DSP, например, на ADSP2181. Но как прояснится со сложностью алгоритма, буду уже конкретно подбирать камень по производительности или вообще реализую его в FPGA, будем посмотреть.
На данный момент задача следующая: подобрать алгоритм модификации, отладить и оценить требования по производительности для железки. Лучше всего это опробовать в компе, так как у него есть все аппаратные возможности. Посему решил обратиться к вам, гуру программирования под ПК, за советом.

Хочу иметь следующее:
Поток audio с Микрофона, на входе алгоритма, а с его выхода слать на звуковой выход компа обработанный поток. Но как это сделать в компе, пока не очень понятно, в этом и нужна помощь. Облазил инет в поисках решения, нашел библиотечку под .NET NAudio, понравилась, как раз реализует именно тот функционал, который мне интересен. Но, к сожалению, к ней нет толкового мануала, а есть только разрозненные описания на форуме автора и периодически в сети попадаются примеры работы с ней. Для считывания нашел следующий пример:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
        WaveIn waveIn;
        WaveFileWriter writer;
        string outputFilename = "1.wav";
 
        void waveIn_DataAvailable(object sender, WaveInEventArgs e)
        {
            if (this.InvokeRequired)
            {
                this.BeginInvoke(new EventHandler<WaveInEventArgs>(waveIn_DataAvailable),sender, e);
            }
            else
            {
                writer.WriteData(e.Buffer, 0, e.BytesRecorded);
                
            }
 }
        
 void Button1Click(object sender, EventArgs e)
 {
            waveIn = new WaveIn();
            waveIn.DeviceNumber = 0;
            waveIn.DataAvailable += waveIn_DataAvailable;
                        
            waveIn.WaveFormat = new WaveFormat(8000, 1);
            writer = new WaveFileWriter(outputFilename, waveIn.WaveFormat);
            waveIn.StartRecording();
 }
 void Button2Click(object sender, EventArgs e)
 {
                waveIn.StopRecording(); 
                waveIn.Dispose();
                waveIn = null;
                writer.Close();
                writer = null;
}
Осталось воспроизведение и организация прямого потока вход-выход, подскажите как организовать.

P.S. Буду так же рад помощи и с самим алгоритмом.
Если в двух словах, нужно заменить один голос на другой. Первое, что приходит в голову, это смещение его в частотном диапазоне и добавления ряда эффектов. Но, это обсуждаемо.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.02.2014, 01:05
Ответы с готовыми решениями:

Замена модуля 3 фазы EVO-II c большим DSP на модуль с маленьким DSP., вопрос... возможно?
Добрый день! Собственно вопрос: Возможна ли замена 3-х фазной платы EVO-II с большим DSP...

Пример по поиску в базе(например Access или Excel)
По поиску в базе на форуме был такой код. Но почему то он не ищет. т.е на искомое слово базу не...

Поиск в базе данных одновременно по нескольким названиям (Например HTC и Apple)
Добрый день! Пишу курсовую работу на C++ Builder, я смог релизовать поиск в базе данных по...

Think DSP
Не могу выполнить примеры из книги Think DSP. Цифровая обработка сигналов на Python by Аллен Б....

4
Эксперт Java
3279 / 2733 / 831
Регистрация: 05.07.2013
Сообщений: 13,056
22.02.2014, 23:36 2
Ну вообще у них на сайте довольно много всяких примеров и обсуждений, кажется даже исходники есть.
А про изменение голоса недавно на хабре интересно писали.
http://habrahabr.ru/company/ifree/blog/203946/
0
2376 / 1812 / 535
Регистрация: 02.08.2011
Сообщений: 5,112
23.02.2014, 12:30 3
Цитата Сообщение от Orodunaar Посмотреть сообщение
Но как это сделать в компе, пока не очень понятно, в этом и нужна помощь.
Как то собирал информацию по идентификации диктора, наткнулся вот на что:
Вложения
Тип файла: pdf Pitch_shifting and Voice transformation techniques.pdf (1.15 Мб, 22 просмотров)
0
2376 / 1812 / 535
Регистрация: 02.08.2011
Сообщений: 5,112
23.02.2014, 12:33 4
Там немного читать. Описано 4 способа модификации звука + Можно поискать на сайте компании.
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
23.02.2014, 15:33 5
Касательно смещения спектра. Существуют частотные скремблеры на основе квадратурных модуляторов, причем достаточно простые в реализации. Инверсный скремблер осуществляет преобразование речевого спектра, равносильное повороту частотной полосы речевого сигнала вокруг некоторой средней точки. При этом достигается эффект преобразования низких частот в высокие и наоборот.

По сути на выходе скремблера получим сигнал с перевернутым спектром. Так вот, если пропустить инвертированный сигнал снова через полосовой скремблер, мы восстановим сигнал и если манипулировать средней точкой поворота - получим восстановленную речь, но со смещенным спектром. Это в аналоговом виде.
Кликните здесь для просмотра всего текста


В цифровой реализации сдвиг спектра проще, читать >>
https://www.cyberforum.ru/post5759276.html
Сдвиг частот для подавления акустической обратной связи
Литература по ЦОС и алгоритмам
Вложения
Тип файла: zip Voice Descrambler.zip (231.0 Кб, 17 просмотров)
Тип файла: zip прослушивание инвертированных сигналов в офф-тайм.zip (227.3 Кб, 17 просмотров)
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2014, 15:33

DSP процессоры
Незнаю в какой раздел запихнуть, наверное сюда больше подходит. Посоветуйте литературу/ссылки по...

OpenCV на DSP
День добрый господа. есть плата virt2real с процессором ARM и DSP. вот его характеристики Нужно...

STM32F4 подключение DSP
Всем доброго времени суток! Извините может за тупой вопрос но помогите пожалуйста разобраться с DPS...

GPS Baseband DSP
Здравствуйте! Пытаюсь разобраться с принципом функционирования GPS приемника. Насколько я понял, в...

Посоветуйте, пожалуйста, DSP
Доброго времени суток всем. Извиняюсь, если не в той теме вопрос, но все же задам. Кто может...

Что такое DSP
Господа. Если можете то ответьте. Что же такое программист с С++ и DSP. Где почить и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.