我有一个向量保存音频数据,频率为 48k。数据由整数组成,最大值约为 4k。矢量类型是<1x768000 double>。当我使用这种矢量类型构建播放器时,如下所示:
a1 = audioplayer(A,48000);
a1.play();
产生的音频噪音很大,比如 SNR 值小于 1(这意味着我的噪音量比我想听到的要高)。
但是,当我将数据转换为 int16 并播放声音时,如下所示:
a2 = audioplayer(int16(A),48000);
a2.play();
生成的音频非常流畅,SNR 像 7-8 或其他东西(未测量或计算,几乎无法检测到噪音,但可以肯定。)
所以这里又是我的问题:在 matlab 中使用 audioplayer 时,double 和 int16 有什么区别?
PS:如果你愿意,我可以提供A。
PS2:A像往常一样包含语音和一点噪音(不是特殊类型,可能是因为麦克风坏等)。