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 ;-)
- Rejestracja:prawie 16 lat
- Ostatnio:prawie 16 lat
- Rejestracja:prawie 16 lat
- Ostatnio:5 miesięcy
- Postów:2514
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.
- Rejestracja:prawie 21 lat
- Ostatnio:ponad 9 lat
- Postów:513
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

- Rejestracja:około 17 lat
- Ostatnio:minuta
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).
- Rejestracja:prawie 16 lat
- Ostatnio:prawie 16 lat
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