如何从仅包含数字的文本文件制作wav文件?

时间:2018-07-13 08:55:39

标签: python audacity

我使用一个两通道的10位A / D转换器,从一个设备中获取了大约35万个样本(每10毫秒一个)并将其全部保存在文本文件中。由于是10位,所以数字都在0-1023之间。

现在我想形象化这两个来源。由于大量的数据点,Gnuplot太慢了,所以我想到了将数据转换为二进制数据,然后将其作为原始数据导入Audacity(或使用sox处理),但是最终结果不是我所期望的。

数据文件摘录:

360  594
367  596
375  594
382  595
389  594
396  593
404  594
412  594
418  596
426  594
433  596
441  594
448  630

数据源1是左列,数据源2是右列。

使用Python快速破解,将数据点拆分并将其转换为单独的文件:

import struct

f = open("new_data").readlines()
l = ([], [])

for line in f:
    a, b = line.split()
    l[0].append(int(a))
    l[1].append(int(b))

with open("new_1.raw", "wb") as file:
    for n in l[0]:
        file.write(struct.pack("i", n))

with open("new_2.raw", "wb") as file:
    for n in l[1]:
        file.write(struct.pack("i", n))

启动Auda​​city并导入时,我发现8位仅是无符号的,这有点令人困惑,因为我的数字是10位(或16)并且是无符号的。无论如何,我做了两个导入:无符号的8位PCM和带符号的16位PCM。结果在下面的屏幕截图中。

enter image description here

当然,由于位剪切,8位的边缘受损,而16位看起来更好。我可以找出锯齿样本的周期时间,而这实际上是我想要找出的。但是,在开始编写此问题之前,我从未设法获得良好的导入效果(因为我只尝试了8位导入),因此该问题不再是一个问题,考虑到我花了很多时间编写此问题,这是一个遗憾

5分钟后

现在出现一个问题。这是我第一次使用Audacity。由于我想研究两个都导入Audacity的数据样本,因此如何链接两个样本窗口,从而在滚动其中一个时同时使它们水平滚动?

0 个答案:

没有答案