Program "Kidnapper"

0

Witam!
Mam do napisania program, który ma za zadanie wczytywanie pliku wav a następnie takie obrobienie próbek by dźwięk był tak zmodulowany żeby przypominał efekt spotykany często w telewizji podczas wypowiedzi ludzi którzy nie chcą zdradzać swoich danych. Mam już wczytywanie pliku wav. Ale nie wiem w jaki sposób obrobić próbki. Efekt ten mam uzyskać w dziedzinie czasu, więc FFT odpada.
Podobnoć trzeba przez próbki przepuścić jakąś falę sinusoidalną. Próbowałem już różnych sposobów ale nic daje tego efektu [glowa] . Pomocy!
Pozdrawiam ;-)

0

wydaje mi się że to pytanie zupełnie nie nadaje się do tego działu. raczej do jakiegoś fora o sygnałach. Tutaj głównie czysto techniczne sprawy. Pokombinuj coś z tymi próbkami co wczytujesz. Dodaj jakąś wartość do próbki i jeśli będzie większa od jakiejś wartości to odejmij od niej wartość albo przemnażaj je kolejno przez wartości jakiejś sinusoidy. jak doświadczalnie się nie uda to jakiegoś wykładu o tym poszukaj.

http://aton.pl/katalog/cyfrowe_przetwarzanie_sygnalow.htm

0

To jest chorus lub jakiś jego odłam. Generalnie działa to na zasadzie zwielokrotnienia ilości "mówiących osób" co można łatwo uzyskać zmieniając prędkość odtwarzania dżwięku, lub dostarczania go do głośnika - zabawa z efektem Dopplera.

W DirectSound jest taki efekt nawet z samplem, a jeśli koniecznie chcesz to samemu napisać, to zaimplementuj bufor przesuwający próbki dźwięku (linia opóźniająca odzwierciedlająca przestrzeń między źródłem sygnału a słuchaczem). Na jego pin wejściowy podczep plik wave, na wyjście inny plik wave lub audio renderer. Próbki w buforze przesuwaj ze mnienną częstotliwością - piła, sinus i co tam jeszcze wymyślisz. Możesz nawet zapętlić bufor - na wejście podać sumę z pliku i z wyjścia bufora by zgłębić efekt lub dodać trochę echa.

Przyspieszajac przesuwanie się dźwięku powodujesz "ruch", zbliżenie się słuchacza do źródła dźwięku, co skutkuje chilowo wyższym dźwiękiem. Przyspieszając i zwalniając odpowiednio często uzyskasz upragniony efekt...
...zmuszając wyjącą karetkę pogotowia by co kilka milisekund zmieniała prędkość :D

0

Jemu nie chodzi o efekt Dopplera, nie chce zmienić wysokości mowy, ale ją zniekształcić.
Nie jestem pewien, ale chodzi tu pewnie o filtr dolnoprzepustowy (by ukryć barwę głosu), plus może lekki efekt echa. Jak nie chcesz zrobić to FFT to po prostu całkuj sygnał z odpowiednimi parametrami a bieżąca wartość to sygnał wyjściowy (szukaj pod hasłem filtry dolnoprzepustowe).

0

Może nie sprecyzowałem się zbyt dokładnie, więc wyjaśniam o co chodzi. Program ma za zadanie: wczytanie pliku wav, obróbkę próbek w taki sposób aby uzyskać obniżenie dżwięku o całę oktawę w dół a następnie zapisanie tak zmienionych próbek z powrotem do pliku wav.
Wpadłem na pomysł aby wszystkie próbki przemnożyć przez falę prostokątną realizowaną poprzez bufor wypełniony w ten sposób, że na początku jest 100 razy wartość -1 a następnie 100 razy wartość 1 i tak w kółko. Efekt, który uzyskałem powoduję modulację dźwięku, ale nie jest zadowalający. :/
Jeśli ktoś będzie miał jeszcze jakieś sugestie to proszę o wypowiedź. Za wszystkie rady dziękuje ;-)
Wracam do walki z moim programem :-D

1 użytkowników online, w tym zalogowanych: 0, gości: 1