pulse-simpleパッケージを使用して、次のコードを作成しました。
main=do
s<-simpleNew Nothing "example" Record Nothing "this is an example application"
(SampleSpec (F32 LittleEndian) 44100 1) Nothing Nothing
xs<-simpleRead s $ 44100*10 :: IO [Float]
simpleFree s
play xs
play :: [Float] -> IO ()
play d = do
s<-simpleNew Nothing "example" Play Nothing "this is an example application"
(SampleSpec (F32 LittleEndian) 44100 1) Nothing Nothing
simpleWrite s d
simpleDrain s
simpleFree s
これは機能し、10 秒間のオーディオを録音してから再生します。
別のプログラムで再生したり、変換したりできるように、オーディオ ファイルをエンコードして (.wav rr として) 保存したいと考えています。これはもっと音声に関する質問だと思うので、Haskell 以外の人のために、基本的に 44100*10 の長さの float の配列を持っています。他のライブラリが必要になると思います。
前もって感謝します。