2013-06-12 1 views
2

Я пытаюсь работать с wav-файлами в Python. Я загрузил библиотеку SciPy, которая якобы может выполнять эту работу. Чтобы увидеть, что это работает, я пытаюсь прочитать wav-файл, а затем снова записать его на диск. По какой-то причине новый созданный wav-файл не похож на старый.чтение wav-файла с использованием scipy.io.wavfile, а затем запись не воспроизводит исходный файл

import scipy.io.wavfile as wav 
(rate,sample) = wav.read("/vocal.wav") 
wav.write("/temp.wav", rate, sample) 
+0

В чем разница? Качественный ? – pypat

+0

Что происходит, если вы читаете файл '/ temp.wav', а затем записываете его в другой файл temp? –

+0

Разница в том, что temp.wav содержит сильный белый шум и более сумасшедшую и более тихую версию исходного vocal.wav –

ответ

1

scipy.io.wavfile.write (имя файла, скорость, данные): Пишет простой несжатого файла WAV. (от here)

Я подозреваю, что ваш входной файл имеет какое-то сжатие.

+0

Сжатие должно вызывать исключение ([источник wavfile.py] (https://github.com/scipy/scipy/blob/v0.17.0/scipy/io/wavfile.py#L39)) –

0

У меня нет большого опыта работы с SciPy, но в соответствии с документацией scipy.io.wavfile.write массива да будет написано, как ожидается, будет массив int значений типа. В то время как scipy.io.wavfile.read указывает, что тип массива определяется типом данных в файле. Возможно, они не совпадают.

Было бы хорошо, чтобы снова прочитать записанный файл и проверить, содержит ли массив, считанный с оригинала, ту же дату после преобразования в int.