[英]How to convert 500Hz csv data file to wav audio file?
我有一個csv數據文件,記錄在一個頻率為500Hz的數據采集中心上,我正在嘗試將其轉換為wav格式。 我試過Python並簡單地輸入數字(作為wave
包的16位整數),但它不起作用。 我應該如何僅從數字流構造一個wav文件?
我嘗試了以下代碼,包括規范化,並將dtype
設置為float32,以便根據此處的文檔使用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
參數。 隨着速率降低,聲音的頻率降低。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.