-
Notifications
You must be signed in to change notification settings - Fork 49
Open
Description
import os
import sys
from pathlib import Path
--- 1. FFmpeg yo'lini TIZIMGA tanitish (Importlardan oldin!) ---
Winget orqali o'rnatilgan yo'lni tekshiramiz
ffmpeg_links = os.path.expandvars(r"%LOCALAPPDATA%\Microsoft\WinGet\Links")
Agar bu yo'l mavjud bo'lsa, uni Windows-ning vaqtinchalik PATH ro'yxatiga qo'shamiz
if os.path.exists(ffmpeg_links):
os.environ["PATH"] += os.pathsep + ffmpeg_links
ENDI pydub-ni import qilamiz. Endi u xatolik bermaydi, chunki tizimdan topadi.
from pydub import AudioSegment, effects
--- 2. Funksiya ---
def normalize_audio(input_folder, output_folder, target_sr=16000):
input_path = Path(input_folder)
output_path = Path(output_folder)
# Papka yaratish
output_path.mkdir(parents=True, exist_ok=True)
# .wav fayllar ro'yxati
audio_files = list(input_path.glob("*.wav"))
if not audio_files:
print(f"⚠️ {input_folder} papkasida fayllar topilmadi!")
return
print(f"🚀 {len(audio_files)} ta audio bilan ishlash boshlandi...")
for audio_file in audio_files:
try:
# Audioni yuklash va ishlov berish
audio = AudioSegment.from_file(audio_file)
audio = audio.set_frame_rate(target_sr).set_channels(1)
normalized_audio = effects.normalize(audio)
# Saqlash
file_name = audio_file.name
normalized_audio.export(output_path / file_name, format="wav")
print(f"✅ Tayyor: {file_name}")
except Exception as e:
print(f"❌ Xatolik {audio_file.name}: {e}")
--- 3. Ishga tushirish ---
INPUT_DIR = "dataset_folder/cleaned_speech"
OUTPUT_DIR = "dataset_folder/normalized_speech"
if name == "main":
normalize_audio(INPUT_DIR, OUTPUT_DIR)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels