簡體   English   中英

怎么把500Hz CSV數據文件轉換成WAV音頻文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM