Edit code for success run
This commit is contained in:
48
record_wav.py
Normal file
48
record_wav.py
Normal file
@@ -0,0 +1,48 @@
|
||||
import sounddevice as sd
|
||||
import scipy.io.wavfile as wav
|
||||
import os
|
||||
import sys
|
||||
|
||||
# 1. Проверка аргументов командной строки
|
||||
if len(sys.argv) < 3:
|
||||
print("Использование: python record.py <имя_модели> <positive/negative>")
|
||||
print("Пример: python record.py cosmo positive")
|
||||
sys.exit(1)
|
||||
|
||||
MODEL_NAME = sys.argv[1]
|
||||
MODE = sys.argv[2]
|
||||
BASE_DIR = os.path.join("data", "wakewords", MODEL_NAME, MODE)
|
||||
|
||||
# Создаем папку, если ее нет
|
||||
if not os.path.exists(BASE_DIR):
|
||||
os.makedirs(BASE_DIR)
|
||||
|
||||
def get_next_filename(directory):
|
||||
files = [f for f in os.listdir(directory) if f.endswith('.wav')]
|
||||
return f"{len(files) + 1:03d}.wav"
|
||||
|
||||
def record_sample():
|
||||
filename = get_next_filename(BASE_DIR)
|
||||
filepath = os.path.join(BASE_DIR, filename)
|
||||
|
||||
sample_rate = 16000
|
||||
duration = 2
|
||||
|
||||
print(f"\n[!] Файл {filename} готов к записи.")
|
||||
input("Нажмите Enter, чтобы начать запись (2 секунды)...")
|
||||
|
||||
print("Запись...")
|
||||
recording = sd.rec(int(duration * sample_rate), samplerate=sample_rate, channels=1)
|
||||
sd.wait()
|
||||
wav.write(filepath, sample_rate, recording)
|
||||
print(f"Сохранено в: {filepath}")
|
||||
|
||||
# 2. Основной цикл записи
|
||||
print(f"--- Режим записи: {MODEL_NAME} / {MODE} ---")
|
||||
print("Для выхода нажмите Ctrl+C")
|
||||
|
||||
try:
|
||||
while True:
|
||||
record_sample()
|
||||
except KeyboardInterrupt:
|
||||
print("\nЗапись завершена.")
|
||||
Reference in New Issue
Block a user