Alesmikes commited on
Commit
42cc93f
1 Parent(s): 04bb66f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -21
app.py CHANGED
@@ -1,37 +1,24 @@
1
- import pyaudio
 
2
  import wave
3
 
4
  # Nastavení parametrů nahrávání
5
- FORMAT = pyaudio.paInt16 # Formát zvuku
6
  CHANNELS = 1 # Počet kanálů (mono)
7
  RATE = 44100 # Vzorkovací frekvence (Hz)
8
- CHUNK = 1024 # Velikost bloku dat
9
  RECORD_SECONDS = 5 # Délka nahrávky (v sekundách)
10
  WAVE_OUTPUT_FILENAME = "sample1.wav" # Název výstupního zvukového souboru
11
 
12
- audio = pyaudio.PyAudio()
13
-
14
  # Nahrávání zvuku z mikrofonu
15
- stream = audio.open(format=FORMAT, channels=CHANNELS,
16
- rate=RATE, input=True,
17
- frames_per_buffer=CHUNK)
18
  print("Nahrávám...")
19
-
20
- frames = []
21
-
22
- for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
23
- data = stream.read(CHUNK)
24
- frames.append(data)
25
-
26
- print("Nahrávání dokončeno")
27
 
28
  # Uložení nahrávky do WAV souboru
29
  with wave.open(WAVE_OUTPUT_FILENAME, 'wb') as wf:
30
  wf.setnchannels(CHANNELS)
31
- wf.setsampwidth(audio.get_sample_size(FORMAT))
32
  wf.setframerate(RATE)
33
- wf.writeframes(b''.join(frames))
34
 
35
- stream.stop_stream()
36
- stream.close()
37
- audio.terminate()
 
1
+ import sounddevice as sd
2
+ import numpy as np
3
  import wave
4
 
5
  # Nastavení parametrů nahrávání
 
6
  CHANNELS = 1 # Počet kanálů (mono)
7
  RATE = 44100 # Vzorkovací frekvence (Hz)
8
+ DTYPE = np.int16 # Datový typ zvuku
9
  RECORD_SECONDS = 5 # Délka nahrávky (v sekundách)
10
  WAVE_OUTPUT_FILENAME = "sample1.wav" # Název výstupního zvukového souboru
11
 
 
 
12
  # Nahrávání zvuku z mikrofonu
 
 
 
13
  print("Nahrávám...")
14
+ audio_data = sd.rec(int(RATE * RECORD_SECONDS), samplerate=RATE, channels=CHANNELS, dtype=DTYPE)
15
+ sd.wait() # Čeká na dokončení nahrávání
 
 
 
 
 
 
16
 
17
  # Uložení nahrávky do WAV souboru
18
  with wave.open(WAVE_OUTPUT_FILENAME, 'wb') as wf:
19
  wf.setnchannels(CHANNELS)
20
+ wf.setsampwidth(audio_data.dtype.itemsize)
21
  wf.setframerate(RATE)
22
+ wf.writeframes(audio_data.tobytes())
23
 
24
+ print("Nahrávání dokončeno")