Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Haskell录制麦克风音频_Haskell_Audio_Sdl 2 - Fatal编程技术网

使用Haskell录制麦克风音频

使用Haskell录制麦克风音频,haskell,audio,sdl-2,Haskell,Audio,Sdl 2,我正在做一些语音识别软件,这是我的第一个Haskell项目。我正在寻找能够跨平台工作的东西。我的计划如下: 将音频录制为.wav文件 用于将.wav文件转换为FLAC文件 向Google的语音API发送语音API请求(如图所示) 接收响应并解释它 然而,我目前在第1步中有些困难,因为在Haskell中录制麦克风输入似乎相当困难 由于这是一次学习经历,我想尝试找到一些简单易懂的东西。在谷歌搜索之后,我发现了这个:,它使用Haskell SDL2绑定和Codec.Audio.Wave。我试着复制代码

我正在做一些语音识别软件,这是我的第一个Haskell项目。我正在寻找能够跨平台工作的东西。我的计划如下:

  • 将音频录制为.wav文件
  • 用于将.wav文件转换为FLAC文件
  • 向Google的语音API发送语音API请求(如图所示)
  • 接收响应并解释它
  • 然而,我目前在第1步中有些困难,因为在Haskell中录制麦克风输入似乎相当困难

    由于这是一次学习经历,我想尝试找到一些简单易懂的东西。在谷歌搜索之后,我发现了这个:,它使用Haskell SDL2绑定和Codec.Audio.Wave。我试着复制代码,看看它是否能工作,但可惜没有。我在运行程序时没有出现任何错误,但是当我尝试播放wave文件时,什么都没有发生,它看起来完全是空的。似乎没有记录任何内容,因为文件大小只有44字节

    我认为问题在于SDL open device spec无法找到合适的录音设备,因此我尝试检查频率,看看我的麦克风是否能够处理48000 Hz的频率,然后因为这没有帮助(最大频率为96000 Hz),我尝试干扰设备通道,但也没有帮助

    问题不在于我的麦克风,因为我试着用arecord(在Arch Linux上)录制一些音频,效果很好。正如我所说,这是我的第一个Haskell项目,我是一个新手,虽然我有其他语言的经验,但完全有可能我做了一些非常愚蠢的事情


    我并不反对任何不涉及SDL2的解决方案,但由于我正在寻找(希望是)简单且跨平台的解决方案,这似乎是一个很好的选择。

    如果您只是保存一个文件以发送到Google,为什么需要Haskell?我想起了一点。不妨使用
    arecord
    -也就是说,我很想知道现在是否有类似的东西可以直接在Haskell中录制。这应该不难…嗯,我使用Haskell,因为我的最终目标是创建一种个人助理(如Alexa或Cortana),所以我需要能够在事后处理信息。此外,这是一个学习项目,我希望它是跨平台的。