Wzmacnianie dźwięku

0

Witam. Z góry zaznaczam że stosowane przeze mnie definicje mogą być niepoprawne ponieważ dopiero rozpocząłem temat dźwięku.

Mój cel: wysłać z przeglądarki (dzięki html5 i javascript) dźwięk z mikrofonu do telefonu z androidem i odegranie go.
Jak to działa: na przeglądarce za pomocą getUserMedia (http://webaudioapi.com/samples/microphone/) napełniam bufor, następnie kowertuje go na sygnał mp3 (https://github.com/zhuker/lamejs), dalej skompresowany bufor wysyłany jest za pomocą websockets do androida, w androidzie za pomocą bibliotek ffmpeg sygnał jest rozkodowywany i odgrywany.
Efekt: Sygnał jest poprawnie rozkodowywany, dźwięk jest czysty (co jakiś czas słychać przerwania ale to na razie nieważne), słychać słowa, ale...
Problem: Dźwięk jest niezwykle cichy. Przy ustawionej maksymalnej głośności na telefonie i słuchawkach odbierany dźwięk można porównać do cichego szeptu.

No i co z tym fantem zrobić? Mikrofon mam w laptopie, próbowałem na innym laptopie, efekt ten sam. Nie działa jakieś windowsowe wzmacianie sygnału. Nie wiem jak by to było z zewnętrznym mikrofonem.
Na androidzie jest audioeffect "LoudnessEnhancer", nie wiem czemu działa mi tylko przez pierwsze 10 sekunde, ale efekt i tak jest marny. Nie znalazłem żadnych informacji czy istnieją jakieś funkcje w javascript do wzmocnienia sygnału. Wiem że ffmpeg może zwiększyć głośność, ale nie znalazłem żadnego przykładu jak to zrobić programowo.

A jeśli sam chciałbym napisać algorytm do wzmocnienia sygnału? Czy to było by trudne? Jak by to miało wyglądać? Jakieś linki?

Jest ktoś kto się orientuje w temacie?

0

A jeśli sam chciałbym napisać algorytm do wzmocnienia sygnału? Czy to było by trudne? Jak by to miało wyglądać?

Algorytm to dużo powiedziane, po prostu trzeba przemnożyć kolejno próbki przez jakąś liczbę > 1, dobraną odpowiednio.

W akustyce używa się skali decybelowej, więc mnożenie razy 2 nie będzie oznaczało „dwa razy głośniej”.

0
Czarny Lew napisał(a):

Wiem że ffmpeg może zwiększyć głośność, ale nie znalazłem żadnego przykładu jak to zrobić programowo.

w tym przykładzie jest volume jako zmienna:
http://stackoverflow.com/questions/24626015/recording-voice-using-html5-and-processing-it-with-ffmpeg

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