Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 1, 2020 16:17:39

rs-qrsk
Зарегистрирован: 2020-06-01
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача аудиофайлов в TCP

Всем привет.
Подскажите, какой модуль поможет мне в решении данной задачи.

Есть файл аудио, например filename.wav, определенной кодировки. Мне нужно этот файл представить в виде массива байтов и отправлять порциями в TCP сокет.

С модулем socket я разобрался, а вот каким модулем мне работать с аудиофайлом не пойму.
Рассматривал wave, pyaudio, librosa

Офлайн

#2 Июнь 1, 2020 16:29:33

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Передача аудиофайлов в TCP

А, простите, какое дело протоколу TCP до того, что это именно аудио-файл? Ну байты и байты, одни байты от других ничем не отличаются, будь то музыка, текст, программа или картинка. Это работа клиента думать, что с этими байтами делать, а не сервера.



Офлайн

#3 Июнь 1, 2020 16:38:12

rs-qrsk
Зарегистрирован: 2020-06-01
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача аудиофайлов в TCP

Т.е если я начну работу вот так, то я смогу дальше это определить в TCP?

 f = open('filename.wav', 'rb')
song = f.read()

Офлайн

#4 Июнь 1, 2020 16:49:16

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Передача аудиофайлов в TCP

Дайте хоть одну причину, почему нет.



Офлайн

#5 Июнь 1, 2020 16:52:15

rs-qrsk
Зарегистрирован: 2020-06-01
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача аудиофайлов в TCP

FishHook
я не знаю, поэтому и спрашиваю)

Офлайн

#6 Июнь 1, 2020 23:52:37

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Передача аудиофайлов в TCP

rs-qrsk
Т.е если я начну работу вот так, то я смогу дальше это определить в TCP?
Читай блоками, для этого в .read() подавай число - размер блока в байтах (октетах). Можно сделать генератор, который будет из файла читать поблочно и возвращать куски, пока файл не закончится.
  
>>> def get_blocks(fname, block_size):
...     with open(fname, 'rb') as fin:
...         block = fin.read(block_size)
...         while block != b'':
...             yield block
...             block = fin.read(block_size)
... 
>>> it = get_blocks('/etc/passwd', 4)
>>> for _ in range(3):
...     block = next(it)
...     print(block)
... 
b'root'
b':x:0'
b':0:r'
>>> for block in get_blocks('/home/guest/.bash_profile', 15):
...     print(block)
... 
b'# .bash_profile'
b'\n\n# Get the ali'
b'ases and functi'
b'ons\nif [ -f ~/.'
b'bashrc ]; then\n'
b'\t. ~/.bashrc\nfi'
b'\n\n# User specif'
b'ic environment '
b'and startup pro'
b'grams\n\nPATH=$PA'
b'TH:$HOME/.local'
b'/bin:$HOME/bin:'
b'/usr/local/bin\n'
b'\nexport PATH\n\ne'
b'xport PATH="$HO'
b'ME/.cargo/bin:$'
b'PATH"\n'
>>>


tags: generator file



Офлайн

#7 Июнь 2, 2020 09:52:30

rs-qrsk
Зарегистрирован: 2020-06-01
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача аудиофайлов в TCP

py.user.next, спасибо большое)
Я пока написал свой вариант, но попробую и так.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version