Advertisement
Fsoky

Dictaphone/Запись голоса | Fsoky

Aug 6th, 2020
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.34 KB | None | 0 0
  1. import pyaudio
  2. import wave
  3.  
  4. global CHUNK
  5. global FORMAT
  6. global CHANNELS
  7. global RATE
  8. global RECORD_SECONDS
  9. global OUTPUT_FILENAME
  10.  
  11. CHUNK = 1024 # 1024 байта
  12. FORMAT = pyaudio.paInt16 # 16 бит
  13. CHANNELS = 2 # Каналы
  14. RATE = 44100 # Частота кадров
  15. RECORD_SECONDS = int( input( 'Время: ' ) ) # Время записи
  16. OUTPUT_FILENAME = 'output.wav' # Название файла
  17.  
  18. def recordVoice():
  19.     global p
  20.     p = pyaudio.PyAudio() # Класс PyAudio
  21.  
  22.     global stream
  23.     stream = p.open(
  24.         format = FORMAT,
  25.         channels = CHANNELS,
  26.         rate = RATE,
  27.         input = True,
  28.         frames_per_buffer = CHUNK
  29.      )
  30.  
  31.     print( '[!] Запись...' )
  32.  
  33.     global frames
  34.     frames = []
  35.  
  36.     for i in range( 0, int( RATE / CHUNK * RECORD_SECONDS ) ):
  37.         data = stream.read( CHUNK )
  38.         frames.append( data )
  39.  
  40.     print( '[!] Запись завершена!' )
  41.  
  42. def completion():
  43.     stream.stop_stream()
  44.     stream.close()
  45.     p.terminate()
  46.  
  47. def result():
  48.     wf = wave.open( OUTPUT_FILENAME, 'wb' )
  49.     wf.setnchannels( CHANNELS )
  50.     wf.setsampwidth( p.get_sample_size( FORMAT ) ) #Возвращает размер (в байтах) для указанного значения формат образца
  51.     wf.setframerate( RATE )
  52.     wf.writeframes( b''.join( frames ) )
  53.     wf.close()
  54.  
  55. def main():
  56.     recordVoice()
  57.     completion()
  58.     result()
  59.  
  60. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement