1

我有一个矢量化的 wav 文件,其值在 -1 和 1 之间,有 88,200 个样本,44.1 kHz 的采样率可以在两秒内听到音频。我想通过蓝牙将音频发送到蓝牙模块、arduino、DAC 和带耳塞的 3.5 毫米分线板。

当我最后收到它时,我得到了噼里啪啦的声音。我试图重新创建这是 MATLAB,结果它是缩放(乘以 + 将值移到 0 上)和由于接收器引起的采样率变化的组合。当然,我可能会用低效的 Arduino 代码完全调整采样频率,但由于一个因素也是初始缩放比例,我的猜测是我误解了音频处理的基本原理。

格式化和/或缩放 0-4095(DAC 输入所需)之间的值的正确方法是什么,以便音频本身在收听时不会因缩放因子、采样率保留而失真?或者在这个大局中我还缺少什么吗

澄清:目前我正在使用 python 套接字库将音频字符串数组逐字符发送到 Arduino 数组中,并将它们作为整数读取,然后输入到 DAC。不确定python套接字是否是最好的方法,应该有更好或更强大的套接字实现来发送数据

更新:我意识到 HC-05 使用SPP 蓝牙协议,这似乎是因为分辨率太低而无法发送可靠的音频。我会看看是否可以发送更压缩的音频文件,将其存储在 arduino 中,然后输出到 DAC。这可以提供更可靠的音频。

4

2 回答 2

-1

您是否尝试过在样本中设置和输出值?我知道包含音频的视频可能是被忽略的一件事,无论如何,这可能会导致上传到 YouTube 的问题。它似乎与此类似,因为它可能不知道从哪里开始和结束,它也会影响音频。

另一个问题可能是针对蓝牙技术的样本格式。AAC 可能应该是格式,但请确认这一点,因为我不能 100% 确定它会接受什么。

于 2018-07-25T02:59:01.637 回答
-1

该库有一个带宽示例: https ://www.arduino.cc/en/Reference/AudioFrequencyMeter

但是 begin() 和 end() 还有其他函数。您可以将它们声明为样本中的开始和结束时间的变量,这样其中一个将成为给定时间的活动轨道。您也可以将您的频率()声明为 44.1 的常量值,但您可能必须为此转义句点。(否则读数为 60 到 1500。)

于 2018-07-25T03:47:41.287 回答