Files
home-voice-assistant/record_wav.py

48 lines
1.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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Запись завершена.")