Ka wideyow bayɛlɛma ka taa bamanankan na
import streamlit as st
import tempfile
import os
import re
from pathlib import Path
import torch
import soundfile as sf
import librosa
import numpy as np
from scipy.signal import butter, filtfilt
from moviepy.editor import VideoFileClip, AudioFileClip
# ====================== إعدادات الصفحة ======================
st.set_page_config(
page_title="Bambara Video Dubber - Studio Edition Pro",
page_icon="🎙️",
layout="centered"
)
st.title("🎙️ تطبيق الدبلجة الفورية الاحترافية بالبامبارا")
st.markdown("""
**نظام دبلجة فيديو فوري واحترافي**
توليد صوت بامبارا نقي جداً خالٍ من القرقرة والتشويش
بأسلوب **الوقار والثبات** مع دعم كامل للأرقام والنصوص المعقدة.
""")
# ====================== تحميل النماذج ======================
@st.cache_resource
def load_models():
# ASR (Whosper)
from whosper import WhosperTranscriber
asr = WhosperTranscriber(model_id="MALIBA-AI/bambara-asr-v3")
# TTS (MALIBA)
from maliba_ai.tts.inference import BambaraTTSInference
from maliba_ai.config.settings import Speakers
tts = BambaraTTSInference()
return asr, tts, Speakers
try:
asr_model, tts_model, Speakers = load_models()
except Exception as e:
st.error(f"حدث خطأ أثناء تحميل النماذج: {e}")
st.stop()
# ====================== محرك محول الأرقام والقواعد النصية المتقدم ======================
def normalize_bambara_numbers_and_text(text: str) -> str:
"""
تحويل الأرقام والترقيم والعبارات المركبة إلى نصوص بامبارا منطوقة بشكل صحيح
لضمان سلاسة النطق وعدم ارتباك نموذج التوليد الصوتي.
يدعم الأرقام من 0 إلى الملايين + التواريخ والأرقام المركبة.
"""
if not text:
return ""
# قاموس تحويل الأرقام الأساسية والمركبة (موسّع)
num_map = {
'0': 'fu', '1': 'kelen', '2': 'fila', '3': 'saba', '4': 'naani',
'5': 'duuru', '6': 'wɔɔrɔ', '7': 'wolonwula', '8': 'seegin', '9': 'kɔnɔntɔn',
'10': 'tan', '11': 'tan ni kelen', '12': 'tan ni fila', '13': 'tan ni saba',
'14': 'tan ni naani', '15': 'tan ni duuru', '16': 'tan ni wɔɔrɔ',
'17': 'tan ni wolonwula', '18': 'tan ni seegin', '19': 'tan ni kɔnɔntɔn',
'20': 'mugan', '30': 'bisaba' …