рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ! рд▓реЗрдЦреЛрдВ рдХреА рдореЗрд░реА рдкрд╣рд▓реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЪрд┐рддреНрд░реЛрдВ / рдзреНрд╡рдирд┐ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреИрд╕реЗ JPEG (рдЫрд╡рд┐) рдФрд░ WAVE (рдзреНрд╡рдирд┐), рдФрд░ рд╡реЗ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдЗрди рдкреНрд░рд╛рд░реВрдкреЛрдВ (.jpg, .wav) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рднреА рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рднрд╛рдЧ рдореЗрдВ рд╣рдо WAVE рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рдХрд╣рд╛рдиреА
WAVE (рд╡реЗрд╡рдлреЙрд░реНрдо рдСрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓ рдлреЙрд░реНрдореЗрдЯ) рдСрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдЯреЗрдирд░ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рд╣реИред рдпрд╣ рдХрдВрдЯреЗрдирд░ рдЖрдорддреМрд░ рдкрд░ рдкрд▓реНрд╕-рдХреЛрдб рдореЙрдбреНрдпреВрд▓реЗрд╢рди рдореЗрдВ рдЕрд╕рдореНрдкреАрдбрд┐рдд рдзреНрд╡рдирд┐ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред (рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд)
рдпрд╣ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдФрд░ рдЖрдИрдмреАрдПрдо (рдЙрд╕ рд╕рдордп рдХреА рдЕрдЧреНрд░рдгреА рдЖрдИрдЯреА рдХрдВрдкрдирд┐рдпреЛрдВ) рджреНрд╡рд╛рд░рд╛ рдЖрд░рдЖрдИрдПрдлрдПрдл рдХреЗ рд╕рд╛рде 1991 рдореЗрдВ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдФрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд╣реЗрдбрд░ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдбреЗрдЯрд╛ рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рдкрд╛рдж рдирд╣реАрдВ рд╣реИред рд╣реЗрдбрд░ рдХрд╛ рд╡рдЬрди рдХреБрд▓ 44 рдмрд╛рдЗрдЯреНрд╕ рд╣реИред
рд╣реЗрдбрд░ рдореЗрдВ рдирдореВрдиреЗ рдореЗрдВ рдмрд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛, рдбрд┐рд╕рдХреНрд░рд┐рдЯрд╛рдЗрдЬреЗрд╢рди рдХреА рдЖрд╡реГрддреНрддрд┐, рдзреНрд╡рдирд┐ рдХреА рдЧрд╣рд░рд╛рдИ, рдЖрджрд┐ рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реЛрддреА рд╣реИрдВред рд╕рд╛рдЙрдВрдб рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реАред (рд╕рднреА рд╕рд╛рдВрдЦреНрдпрд┐рдХ рддрд╛рд▓рд┐рдХрд╛ рдорд╛рди рд▓рд┐рдЯрд┐рд▓-рдПрдВрдбрд┐рдпрди рдХреНрд░рдо рдореЗрдВ рд▓рд┐рдЦреЗ рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП)
рдЙрджрд╛рд╣рд░рдг рд╣реИ
рдкрд┐рдЫрд▓реА рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдЬ рд╣рдорд╛рд░реА рднрд╛рд╖рд╛ рдкрд╛рдпрдерди рд╣реИред рд▓рд╣рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдХрд╛рдо рдПрдХ рд╢реЛрд░ рдЬрдирд░реЗрдЯрд░ рд╣реИред рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЙрдЪреНрдЪ рдмрд╛рдЗрдЯ рдФрд░ рд╕рдВрдкреАрдбрд╝рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ:
рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рдЙрдирдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЪрд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдореВрд▓реНрдп рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛ (рдирдореВрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред рдЬрд┐рддрдиреЗ рдЕрдзрд┐рдХ рд╣реЛрдВрдЧреЗ, рд╣рдорд╛рд░рд╛ рд╢реЛрд░ рдЙрддрдирд╛ рд╣реА рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛ред
numSamples = int(argv[1]) output_path = argv[2] chunkId = b'RIFF' Format = b'WAVE' subchunk1ID = b'fmt ' subchunk1Size = b'\x10\x00\x00\x00'
рдпрд╣ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ (рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ):
with open(output_path, 'wb') as fh: fh.write(chunkId + chunkSize + Format + subchunk1ID + subchunk1Size + audioFormat + numChannels + sampleRate + byteRate + blockAlign + bitsPerSample + subchunk2ID + subchunk2Size + data)
рдФрд░ рдЗрд╕рд▓рд┐рдП, рдХрд┐рдпрд╛ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:
python3 WAV.py [num of samples] [output]
рдирдореВрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ - рдЧрд┐рдирддреА рдирдореВрдиреЗ
рдЖрдЙрдЯрдкреБрдЯ - рдЖрдЙрдЯрдкреБрдЯ рдлрд╛рдЗрд▓ рдХрд╛ рдкрде
рдпрд╣рд╛рдБ рд╢реЛрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░реАрдХреНрд╖рдг рдСрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд▓рд┐рдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрдореЛрд░реА рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ BPS рдХреЛ 1b / s рдкрд░ рдЙрддрд╛рд░рд╛ рдФрд░ рдЪреИрдирд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 1 рддрдХ рдЧрд┐рд░рд╛ рджреА (64kbs рдкрд░ 32k рдЕрд╕рдореНрдкреАрдбрд┐рдд рд╕реНрдЯреАрд░рд┐рдпреЛ рдСрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд╕рд╛рде рдпрд╣ рдПрдХ рд╕рд╛рдл .avav рдлрд╝рд╛рдЗрд▓ рдХрд╛ 80M рдирд┐рдХрд▓рд╛, рдФрд░ рдХреЗрд╡рд▓ 10): https: /ред /instaud.io/3Dcy
рдкреВрд░реЗ рдХреЛрдб (WAV.py) (рдХреЛрдб рдореЗрдВ рдХрдИ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╡реИрд▓реНрдпреВрдЬрд╝ рд╡реИрд░рд┐рдПрдмрд▓ рд╣реИрдВ, рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╕реНрдХреЗрдЪ рд╣реИ):
from struct import pack
рдкрд░рд┐рдгрд╛рдо
рддреЛ рдЖрдкрдиреЗ рдбрд┐рдЬрд┐рдЯрд▓ рд╕рд╛рдЙрдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рд╕реАрдЦрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╣рдордиреЗ рдХрдореНрдкреНрд░реЗрд╢рди (рдСрдбрд┐рдпреЛрдлрд╝реЙрд░реНрдореИрдЯ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рд▓реЗрдЦ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд▓реЗрдЦреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред 10. рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдХреБрдЫ рдирдпрд╛ рд╕реАрдЦрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЖрдкрдХреЛ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред
рдзрдиреНрдпрд╡рд╛рдж!
рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ
WAV рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛
WAV - рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛