如何将 500Hz csv 数据文件转换为 wav 音频文件?

How to convert 500Hz csv data file to wav audio file?

我有一个 csv 数据文件,记录在频率为 500Hz 的数据采集中心,我正在尝试将其转换为 wav 格式。我尝试 Python 并简单地提供数字(作为 wave 包的 16 位整数),但它没有用。我应该如何从简单的数字流构造一个 wav 文件?

我尝试了以下代码,其中包括规范化,我将 dtype 设置为 float32,以便根据文档 here 使用 32 位浮点格式, 它只是没有发出任何声音。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import numpy as np
import scipy.io.wavfile
from numpy import *

csv_array = np.loadtxt('trimmed.csv', delimiter=',', dtype=float32)

min = np.amin(csv_array)
max = np.amax(csv_array)
med = (max + min) / 2

def f(x):
    return (x - med) * (1 - (-1)) / (max - min)

f = np.vectorize(f)
wav_array = f(csv_array)

scipy.io.wavfile.write('output.wav', 500, csv_array)

问题出在您的采样率上。尝试将数据重新采样到 44100 Hz 之类的频率(请参见下面的代码)。我不知道重新采样会对您的数据产生什么影响。

import numpy as np
from scipy.io import wavfile
from scipy.signal import resample

data = np.random.uniform(-1, 1, 500)
data_resampled = resample(data, 44100)

wavfile.write('output.wav', 44100, data_resampled)

尝试使用 sipy.io.wavfile.write 中的 rate 参数。随着速率降低,声音的频率降低。