【问题标题】:Pi 3 USB USB Microphone; accessing programmtically in C/C++Pi 3 USB USB 麦克风;在 C/C++ 中以编程方式访问
【发布时间】:2018-09-19 05:19:34
【问题描述】:

我正在使用 USB 麦克风使用 Raspberry Pi 3(运行 Raspbian)进行语音处理项目。我可以看到麦克风显示为 Pi 的可选音频设备,它可以完美地产生/捕获声音。

我不知道如何在我的代码中使用它;我对此进行了大量研究,并找到了一些教程,但没有任何意义。我来自更多的硬件背景,并且在控制器上做了类似的事情,我连接了一个实际的麦克风并将模拟信号处理成 IO 引脚上的数字信号;我对此感到非常沮丧,以至于我即将使用 Mic 和 A2D 转换从 Arduino 中提取数据。

----------------------------------- --------我的问题---------------------------------------- ------------
1) 我想知道如何在 C 或 C++ 中访问 USB 数据流或 USB 设备。我的 Linux 能力不是最好的。我是在“/dev/USB/....”中打开串行连接还是打开文件流?能否提供代码示例?

2) 不管 USB 麦克风输入的保真度如何,我想知道如何在 C/C++ 中访问它的输入。我一直在研究 ALSA,但不能真正理解它的很多复杂性。有什么东西可以让我访问我可以处理的 USB 端口上的原始输入信号(我可以在其中推断出频率、幅度等)?

我已经在这里浏览了很多类似的帖子。我真的坚持这个。我真的很想从操作系统的角度了解发生了什么;我将使用给定的库,但我想了解它是如何工作的。

谢谢!

【问题讨论】:

  • “C/C++”不是一种语言。
  • 您想使用 ALSA 或 OpenSLES。查看 arecord.c 了解 ALSA 的工作原理
  • 既然您标记为 C++,请在互联网上搜索“c++ boost asio”。
  • 我个人认为python会是这个项目更好的选择。学习编程也不是一朝一夕的事。耐心是关键。祝你好运。

标签: c++ c usb raspberry-pi3 audio-processing


【解决方案1】:

所以更新:

所以我用一些 .sh 脚本用 C 语言编写了所有代码。我继续研究如何使用 Alsa asoundlib(特别是 asound.h)。到目前为止,我可以使用我的 Pi 3 通过 USB 麦克风/耳机生成和录制声音。这样做相当费力,但这里有一个有用的链接 (1)。

对于我的项目,我还在链接 (2) 和视频链接 (3) 上找到了他们的 PocketSphinx 音频识别设备的 CMU 教程/存储库。这个项目也使用了 Alsa asoundlib,对我帮助很大。下载需要一段时间,您需要爬取其 .sh 脚本以找出其 gcc 链接。但我现在能够提供由我的 Pi 3 解释并推送到扬声器输出和 GPIO 引脚的音频提示。

LINKS(1)http://www.alsa-project.org/alsa-doc/alsa-lib/_2test_2pcm_8c-example.html (2)https://wolfpaulus.com/embedded/raspberrypi2-sr/ (3)https://www.youtube.com/watch?v=5kp5qpwVh_8

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 2012-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多