Найти - Пользователи
Полная версия: Передача аудиофайлов в TCP
Начало » Python для новичков » Передача аудиофайлов в TCP
1
rs-qrsk
Всем привет.
Подскажите, какой модуль поможет мне в решении данной задачи.

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

С модулем socket я разобрался, а вот каким модулем мне работать с аудиофайлом не пойму.
Рассматривал wave, pyaudio, librosa
FishHook
А, простите, какое дело протоколу TCP до того, что это именно аудио-файл? Ну байты и байты, одни байты от других ничем не отличаются, будь то музыка, текст, программа или картинка. Это работа клиента думать, что с этими байтами делать, а не сервера.
rs-qrsk
Т.е если я начну работу вот так, то я смогу дальше это определить в TCP?
 f = open('filename.wav', 'rb')
song = f.read()
FishHook
Дайте хоть одну причину, почему нет.
rs-qrsk
FishHook
я не знаю, поэтому и спрашиваю)
py.user.next
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
rs-qrsk
py.user.next, спасибо большое)
Я пока написал свой вариант, но попробую и так.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB