import sounddevice as sd import scipy.io.wavfile as wav import os import sys # 1. Проверка аргументов командной строки if len(sys.argv) < 3: print("Использование: python record.py <имя_модели> ") 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Запись завершена.")