У меня есть файл csv данных, записанный в центре сбора данных с частотой 500 Гц, и я пытаюсь преобразовать его в формат wav. У меня есть trie для Python, и я просто скармливаю числа (как 16-битные целые числа в пакет wave
), и это не сработало. Как мне создать 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)