دليل عملي لتعلم Microsoft VibeVoice في التعرف على الصوت والحديث
استكشف Microsoft VibeVoice في Google Colab لبناء سير عمل شامل للتعرف على الصوت وتوليد الكلام في الوقت الحقيقي.
تعتبر Microsoft VibeVoice واحدة من التقنيات المتقدمة في مجال التعرف على الصوت وتوليد الكلام في الوقت الحقيقي. في هذه المقالة، سنقوم بتقديم دليل عملي لتطبيق VibeVoice في بيئة Google Colab، حيث سنبني سير عمل كامل يجمع بين التعرف على الصوت وتوليد الكلام. سنتناول كيفية إعداد البيئة من الصفر، وتثبيت الحزم المطلوبة، والتحقق من دعم أحدث نماذج VibeVoice، بالإضافة إلى استكشاف ميزات متقدمة مثل النسخ الصوتي المعتمد على المتحدث، والتعرف على السياق، والمعالجة الدفعة للصوت، وتوليد كلام تعبيري.
إعداد البيئة لتطبيق VibeVoice
لبدء العمل مع VibeVoice، يجب أولاً إعداد بيئة Google Colab. نبدأ بتثبيت الحزم المطلوبة باستخدام الأوامر التالية:
!pip uninstall -y transformers -q
!pip install -q git+https://github.com/huggingface/transformers.git
!pip install -q torch torchaudio accelerate soundfile librosa scipy numpy
!pip install -q huggingface_hub ipywidgets gradio einops
!pip install -q flash-attn --no-build-isolation 2>/dev/null || echo "flash-attn optional"
!git clone -q --depth 1 https://github.com/microsoft/VibeVoice.git /content/VibeVoice 2>/dev/null || echo "Already cloned"
!pip install -q -e /content/VibeVoice
بعد ذلك، يجب إعادة تشغيل بيئة التشغيل لضمان تحميل جميع المكتبات بشكل صحيح.
التعرف على الصوت باستخدام VibeVoice
بعد إعداد البيئة، نبدأ في تحميل نموذج VibeVoice ASR (التعرف على الصوت) وبدء عملية النسخ. نستخدم الكود التالي لتحميل النموذج:
from transformers import AutoProcessor, VibeVoiceAsrForConditionalGeneration
asr_processor = AutoProcessor.from_pretrained("microsoft/VibeVoice-ASR-HF")
asr_model = VibeVoiceAsrForConditionalGeneration.from_pretrained("microsoft/VibeVoice-ASR-HF")
نقوم بعد ذلك بتعريف دالة للنسخ الصوتي تسمح بتمرير المسار الصوتي وسياق الاختبار:
def transcribe(audio_path, context=None, output_format="parsed"):
inputs = asr_processor.apply_transcription_request(audio=audio_path, prompt=context).to(asr_model.device, asr_model.dtype)
output_ids = asr_model.generate(**inputs)
generated_ids = output_ids[:, inputs["input_ids"].shape[1]:]
result = asr_processor.decode(generated_ids, return_format=output_format)[0]
return result
نقوم بتجربة النموذج على مقاطع صوتية مختلفة مع التعرف على المتحدثين، مما يمكننا من الحصول على نصوص دقيقة.
توليد الكلام مع VibeVoice
بعد الانتهاء من عملية النسخ، ننتقل إلى توليد الكلام. نقوم بتحميل نموذج VibeVoice TTS (توليد الكلام) وبدء عملية توليد الصوت:
from transformers import AutoModelForCausalLM
tts_model = AutoModelForCausalLM.from_pretrained("microsoft/VibeVoice-Realtime-0.5B")
tts_tokenizer = VibeVoiceTextTokenizerFast.from_pretrained("microsoft/VibeVoice-Realtime-0.5B")
نقوم بتعريف دالة لتوليد الكلام من النصوص المدخلة:
def synthesize(text, voice="Grace", cfg_scale=3.0, steps=20):
input_ids = tts_tokenizer(text, return_tensors="pt").input_ids.to(tts_model.device)
output = tts_model.generate(inputs=input_ids, tokenizer=tts_tokenizer, cfg_scale=cfg_scale, return_speech=True)
return output.audio.squeeze().cpu().numpy()
بمجرد إعداد كل شيء، يمكننا تجربة توليد الصوت باستخدام نصوص مختلفة واختيار أصوات متعددة.
ختام الدليل العملي
يعد Microsoft VibeVoice أداة قوية في مجال التعرف على الصوت وتوليد الكلام، حيث يوفر إمكانيات متقدمة مثل النسخ الصوتي المعتمد على المتحدث وتوليد الكلام في الوقت الحقيقي. من خلال هذا الدليل، يمكنك البدء في استخدام VibeVoice في مشاريعك الخاصة والابتكار في تطبيقات الذكاء الاصطناعي.
المصدر: MarkTechPost