2013-02-15 10 views
6

muszę być w stanie odtwarzać plik MP3 z prędkościami bez różnicy to wpływu na skok (lub zmiana boisko po przyspieszeniu, cokolwiek), Również przejście musi być bez szwu, jak to możliwe.Jak przyspieszyć odtwarzanie muzyki w czasie rzeczywistym w Androidzie bez zmiany wysokości dźwięku?

Oczywiście istnieją aplikacje, które to zrobić, więc jest możliwe, ale nie wydaje się być możliwe z MediaPlayer API, a SoundPool API może tylko zmienić zarówno wysokość i szybkość (chyba że jestem brakuje czegoś).

Każdy pomysł, jak to osiągnąć? Wszelkie biblioteki API/3rd party, które mogą pomóc?

Dzięki.

+1

Spróbuj odnoszące się do tej kwestii [] (http://stackoverflow.com/q/11260043/752320). – Geobits

+0

Czy znalazłeś jakiś sposób, aby to osiągnąć? –

+0

Skończyliśmy używać biblioteki innej firmy, zapisywać do strumienia i czytać z niego za pomocą funkcji AudioTrack. – Gal

Odpowiedz

1

Istnieje ogólna technika zwana Time Scale Modification, że może to zrobić. Oto dostępne narzędzie, którego nie oceniłem: http://sourceforge.net/projects/mffmtimescale/.

Jeśli powiększyć linię czasu audio, wygląda trochę jak stary monitor pulsu - a wiggly wzorców szczytów i dolin. Dla samogłosek wzór jest quasi-stacjonarny, co z grubsza oznacza, że ​​jest powtarzalny, jak puls zdrowego serca. Pojedynczy ahhhh samogłoska może powtarzać swój wzorzec 3-7 razy w normalnej mowie. Algorytm TSM usuwa niektóre z tych powtórzeń i musi wykorzystywać filtr do wprowadzania artefaktów przez wycinanie/łączenie niedoskonałych powtórzeń. Puste przestrzenie również mogą zostać zredukowane, ale należy uważać, aby nie usunąć całej pustej przestrzeni - w języku angielskim słowo "piłka nożna" faktycznie ma lukę między "stopą" a "piłką" (powiedzmy, że powoli na głos). TSM może również wykonać odwrotność, pompując pustą przestrzeń w miejscach uprawnień lub dodając powtórzenia okresów tonu do samogłosek. Wszystko to składa się na coś dość złożonego i w pewnym stopniu zależnego od języka, który wymaga wielu tuningów - co w przypadku większości aplikacji oznacza, że ​​nie będziesz chciał tworzyć własnego.

Powiązane problemy