[python] problém s modulem wave

jiri.zahradil na gmail.com jiri.zahradil na gmail.com
Pondělí Červenec 16 14:58:21 CEST 2007


Zdravím,

mám problém s modulem wave. Mám PCM data v paměti a potřebuji je
korektně uložit do .wav souboru. Vytvořil jsem si na to funkci pomocí
modulu wave (je u Pythonu - 2.5, pod Windows). Bohužel, vytvořený
soubor je zhruba správně velký, ovšem dat - PCM vzorků - je v něm jen
půlka (= přehraje se jen půlka, zkoušel jsem různé programy). Pokud
uložím jen PCM data pomocí open("soubor.pcm","wb").write(data) a pak
data otevřu v editoru jako "raw" formát tak jsou tam všechna. Nevíte
kde může být chyba?

Funkce kterou používám:

import wave
def SavePCMasWAV(filename, data):
  """
  Function that takes a filename and PCM data in mono, 16bit, 16000 Hz
format
  and saves them as standard .WAV file
  """

  if type(data) is type(list()):
    # need to transform "list" data to binary array format
    a = array.array("h") # short type
    a.extend(data)
    data = a

  w = wave.open(filename,"wb")
  w.setnchannels(1)
  w.setsampwidth(2)
  w.setframerate(16000)
  w.setnframes(len(data))
  w.writeframesraw(data)
  w.close()



Další informace o konferenci Python