How do I write a 24-bit WAV file in Python?

前端 未结 7 2192
遇见更好的自我
遇见更好的自我 2020-12-11 02:05

I want to generate a 24-bit WAV-format audio file using Python 2.7 from an array of floating point values between -1 and 1. I can\'t use scipy.io.wavfile.write because it on

7条回答
  •  粉色の甜心
    2020-12-11 02:26

    Another option is available in wavio (also on PyPI: https://pypi.python.org/pypi/wavio), a small module I created as a work-around to the problem of scipy not yet supporting 24 bit WAV files. The file wavio.py contains the function write, which writes a numpy array to a WAV file. To write a 24-bit file, use the argument sampwidth=3. The only dependency of wavio is numpy; wavio uses the standard library wave to deal with the WAV file format.

    For example,

    In [21]: import numpy as np
    
    In [22]: import wavio
    
    In [23]: rate = 22050             # samples per second
    
    In [24]: T = 3                    # sample duration (seconds)
    
    In [25]: f = 440.0                # sound frequency (Hz)
    
    In [26]: t = np.linspace(0, T, T*rate, endpoint=False)
    
    In [27]: sig = np.sin(2 * np.pi * f * t)
    
    In [28]: wavio.write("sine24.wav", sig, rate, sampwidth=3)
    

提交回复
热议问题