2010-03-12 6 views
6

Czy istnieje dojrzała biblioteka, która może włączyć wejście i wyjście audio i pracować w Haskell? (Ładne opakowanie jest oczywiście w porządku.)Przechwytywanie wejścia audio z mikrofonu, z Haskell?

Szukam czegoś, co może z łatwością uchwycić wejście mikrofonu i, być może, odtwarzać różne pliki audio.

Dzięki.

+1

Mam niewydaną opaskę opartą na rurach dla PortAudio (biblioteki audio na różnych platformach), którą mogę dokończyć, wypolerować i wypuścić.Jeśli sugestie innych osób pozostawiają uczucie, że coś takiego jest potrzebne w ekosystemie, daj mi znać, a postaram się to wkrótce zrobić. – gspr

+0

Och, heh, dopiero teraz uświadomiłem sobie, że to pytanie jest naprawdę stare i że po prostu pojawiło się ponownie z powodu jakiegoś faceta dodającego nową odpowiedź. – gspr

Odpowiedz

4

łatwo przechwycić wejście mikrofonowe, a może odtwarzać różne pliki audio, jak również ..

Będzie silnie zależą od platformy OS: istnieją standardowych bibliotek C dla tej funkcji na każdym OS i będziesz szukał dla nich powiązań Haskell (np. PulseAudio, itp.). Spójrz w kategorii Dźwięk na Hackage:

Np HSndFile do zapisu plików dźwiękowych, http://hackage.haskell.org/package/HSoundFile

3

moduł - proste odsłonięcie wiązań w celu przechwycenia dźwięku z mikrofonu, patrz drugi przykład u góry strony;
https://hackage.haskell.org/package/pulse-simple-0.1.13/docs/Sound-Pulse-Simple.html
biblioteki audio impulsów wymagane przez cabal są dostępne za pośrednictwem cygwin (szukaj "puls" w instalatorze cygwin).

jest również wiążące dla sox, który wygląda obiecująco. https://hackage.haskell.org/package/sox

Jestem pewien, że w kategorii dźwięku hakowania znajdują się inne opakowania api.

for Linux jest wiążący do gniazda, ma „UNIX” jako zależność, to NIE budować na oknach ...

+0

audacity jest zbudowany na wxWindows i ffmpeg, oba z nich są portowane do haskell; haskell.org/haskellwiki/WxHaskell, hackage.haskell.org/package/ffmpeg-light – error

+0

Przydatność 'sox' nigdy się nie zaskakuje! – Vorac

1

Można to zrobić z OpenAL i ALUT. Udało mi się zainstalować zarówno na Windows 8, chociaż nie było to łatwe; Parametr ALUT wymaga ręcznego kompilowania podstawowej biblioteki C do biblioteki DLL.

Instalacja OpenAL - z drugiej strony - jest tak prosta, jak pobranie SDK i wpisanie cabal install OpenAL w wierszu poleceń.

Za pomocą ALUT można tworzyć bufory OpenAL z plików audio (w tym WAV) i widoków pamięci.

Znalazłem przykład nagrywania i odtwarzania dźwięku here. Powinno być dość proste dostosowanie kodu do twoich potrzeb.

Daj mi znać, jeśli coś zostawię, a postaram się opracować.