2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Не работает программа на Python обрабатывающая звук
Сообщение22.11.2021, 20:14 
В папке с программой лежит файл Ring05.wav размером 1107 килобайт

Код программы из обучающей статьи:
код: [ скачать ] [ спрятать ]
Используется синтаксис Python
import wave
import struct

source = wave.open("Ring05.wav", mode="rb")
dest = wave.open("out.wav", mode="wb")

dest.setparams(source.getparams())

# найдем количество фреймов
frames_count = source.getnframes()

data = struct.unpack("<" + str(frames_count) + "h",
                     source.readframes(frames_count))

# собственно, основная строка программы - переворот списка
newdata = data[::-1]

newframes = struct.pack("<" + str(len(newdata)) + "h", *newdata)

# записываем содержимое в преобразованный файл.
dest.writeframes(newframes)
source.close()
dest.close()

 


Из вывода интерпретатора:
Код:
line 12, in <module>
    data = struct.unpack("<" + str(frames_count) + "h",
struct.error: unpack requires a buffer of 566272 bytes


566 килобайт, разве это много? В чём тут проблема?

 
 
 
 Re: Не работает программа на Python обрабатывающая звук
Сообщение23.11.2021, 07:14 
Может в статье они читали моно аудио файл, а у Вас стерео...
Попробуйте сделать другой wav с моно и прочитайте его своим питон-скриптом.

 
 
 
 Re: Не работает программа на Python обрабатывающая звук
Сообщение23.11.2021, 17:52 
zykov
Скачал вот тут самый маленький файл, при прослушивании через наушники мне показалось что он моно. Та же случилась ошибка

 
 
 
 Re: Не работает программа на Python обрабатывающая звук
Сообщение23.11.2021, 17:58 
crocro23
Когда кажется креститься проверять надо. Разумеется все файлы там стерео.

 
 
 
 Re: Не работает программа на Python обрабатывающая звук
Сообщение23.11.2021, 18:15 
crocro23
Не надо искать моно.
Откройте любой свой стерео wav любым аудио редактором и сконвертируйте его в моно.
(Или сами запишите на микрофон на компьютере или смартфоне.)

-- 23.11.2021, 18:30 --

Или вот нашел моно wav: http://www0.cs.ucl.ac.uk/teaching/GZ05/ ... 9-8000.wav

 
 
 
 Re: Не работает программа на Python обрабатывающая звук
Сообщение23.11.2021, 19:11 
zykov в сообщении #1540261 писал(а):
Или вот нашел моно wav:

Спасибо, теперь программа работает

 
 
 
 Re: Не работает программа на Python обрабатывающая звук
Сообщение23.11.2021, 19:27 
Если более одного канала (например если стерео), то надо что-то вроде:
Используется синтаксис Python
    fp = wave.open(path)
    nchan = fp.getnchannels()
    N = fp.getnframes()
    dstr = fp.readframes(N * nchan)

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group