我有一个矢量化的wav文件,其值介于-1和1,88,200个样本,44.1 kHz采样率,可以在两秒钟内听到音频。我想把音频通过蓝牙发送到蓝牙模块,arduino,DAC和3.5mm带耳塞的突破板。
当我在最后收到它的时候,我的声音很刺耳。我试图重新创建这是MATLAB,结果是比例(乘+将值移到0上)和采样率由于接收器的变化的组合。当然,我可以用低效率的Arduino代码完全重述采样频率,但是由于一个因素也是最初的缩放,我的猜测是我误解了音频处理的一些基本内容。
是什么正确的方式来格式化和或缩放0-4095之间的值(这是DAC输入所需要的),以便音频本身在听时不会因为缩放因子,采样率保持不计而被扭曲?还是还有什么东西是我在这幅大图中遗漏的?
Clarification:目前我正在使用python库将音频字符串数组char逐字符发送到Arduino数组中,并将它们作为整数读取,然后输入DAC。不确定python套接字是否是最好的方法,应该有更好的或更健壮的套接字实现来发送数据。
更新:我意识到HC-05使用的是SPP蓝牙协议,它的分辨率太低,无法发送可靠的音频。我会看看是否可以发送一个更压缩的音频文件,存储在arduino,然后输出到DAC。可以提供更可靠的音频。
发布于 2018-07-25 02:59:01
您是否尝试过在样本中设置和输出值?我知道包括音频的视频,这可能是一件被忽视的事情,无论如何,这可能会导致上传到YouTube的问题。它似乎类似于这一点,因为它可能不知道从哪里开始和结束,它也可能影响音频。
另一个问题可能是样本的格式,反对蓝牙技术。AAC可能应该是格式,但请确认这一点,因为我不能100%确定它将接受什么。
发布于 2018-07-25 03:47:41
这个库有一个带宽示例:https://www.arduino.cc/en/Reference/AudioFrequencyMeter
但是,begin()和end()还有其他函数。您可以在样本中将它们声明为可变的开始时间和结束时间,这样在给定的时间内,一个将是活动轨道。您还可以将frequency()声明为一个常量44.1,但您可能不得不转义这一期间。(否则它会读到60到1500。)
https://stackoverflow.com/questions/51510035
复制相似问题