Audio 数字音频格式化

Audio 数字音频格式化,audio,arduino-uno,sampling,digital-analog-converter,hc-05,Audio,Arduino Uno,Sampling,Digital Analog Converter,Hc 05,我有一个矢量化的wav文件,其值介于-1和188200个样本之间,采样率为44.1 kHz,可以在两秒钟内听到音频。我想通过蓝牙将音频发送到蓝牙模块、arduino、DAC和带耳塞的3.5毫米转接板 当我在最后收到它的时候,我得到的声音非常刺耳。我试图重新创建这是MATLAB,结果是缩放(乘以+移动值超过0)和采样率因接收器而变化的组合。当然,我可以用低效的Arduino代码完全记录采样频率,但由于一个因素也是初始缩放,我猜我误解了音频处理的一些基本原理 格式化和/或缩放0-4095(DAC输入

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

当我在最后收到它的时候,我得到的声音非常刺耳。我试图重新创建这是MATLAB,结果是缩放(乘以+移动值超过0)和采样率因接收器而变化的组合。当然,我可以用低效的Arduino代码完全记录采样频率,但由于一个因素也是初始缩放,我猜我误解了音频处理的一些基本原理

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

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


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

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


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

库中有一个带宽示例:


但是begin()和end()还有其他函数。您可以将它们声明为示例中开始和结束时间的变量,这样在给定的时间,其中一个将成为活动轨迹。您还可以将frequency()声明为44.1的常量值,但可能需要避开该周期。(否则读数为60到1500。)

设置输入和输出值是什么意思?对不起,我现在确实注意到Arduino应该支持wav格式,但我没有看到停止或输出功能。当曲目开始时输入,当曲目结束时输出。我在频率功能中看到蓝牙编解码器将为您处理所有这些。你用的是什么编解码器?为什么您需要使用12位PCM音频?我使用的是WAV格式,我已经意识到它是未压缩的,并且在通过python从我的PC向蓝牙模块发送那么多样本时,这似乎是一个问题。我不需要任何特别的格式,我只想使用最终最有可能工作的格式,也就是说,能够从PC机以for循环发送所有样本,并通过耳塞收听。我想它必须是12位的,因为DAC只接受0-4095之间的值。为什么不使用内置在您使用的蓝牙堆栈中的可自适应编解码器呢?你真的不想在有限的蓝牙带宽上发送原始PCM。我在python()和python“Bluetooth”(实际上只是一个Bluetooth套接字对象)中使用套接字。这个套接字库的级别非常低,所以对于我来说,找到如何发送数据都是一件麻烦事。我确信有更好的方法使用这个库发送,只是不知道如何发送。是的,我绝对应该把PCM换成别的东西。您对python库有什么建议吗?它具有更好的内置“自适应蓝牙堆栈”和/或更好的文档?这些编解码器通常内置在蓝牙模块中。例如,看看实现A2DP的模块。