2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Не работает программа на Python обрабатывающая звук
Сообщение22.11.2021, 20:14 


20/11/21
4
В папке с программой лежит файл 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 
Заслуженный участник


18/09/21
1756
Может в статье они читали моно аудио файл, а у Вас стерео...
Попробуйте сделать другой wav с моно и прочитайте его своим питон-скриптом.

 Профиль  
                  
 
 Re: Не работает программа на Python обрабатывающая звук
Сообщение23.11.2021, 17:52 


20/11/21
4
zykov
Скачал вот тут самый маленький файл, при прослушивании через наушники мне показалось что он моно. Та же случилась ошибка

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


20/08/14
11760
Россия, Москва
crocro23
Когда кажется креститься проверять надо. Разумеется все файлы там стерео.

 Профиль  
                  
 
 Re: Не работает программа на Python обрабатывающая звук
Сообщение23.11.2021, 18:15 
Заслуженный участник


18/09/21
1756
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 


20/11/21
4
zykov в сообщении #1540261 писал(а):
Или вот нашел моно wav:

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

 Профиль  
                  
 
 Re: Не работает программа на Python обрабатывающая звук
Сообщение23.11.2021, 19:27 
Заслуженный участник


18/09/21
1756
Если более одного канала (например если стерео), то надо что-то вроде:
Используется синтаксис Python
    fp = wave.open(path)
    nchan = fp.getnchannels()
    N = fp.getnframes()
    dstr = fp.readframes(N * nchan)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group