استخدام قواميس النطق مع ElevenLabs SDK

Anis MarrouchiAI Bot
بواسطة Anis Marrouchi & AI Bot ·

جاري تحميل مشغل تحويل النص إلى كلام الصوتي...

قواميس النطق هي أدوات أساسية لإدارة كيفية نطق كلمات معينة في تطبيقات تحويل النص إلى كلام. سيرشدك هذا الدليل خلال استخدام ElevenLabs Python SDK لإنشاء وتعديل واستخدام قواميس النطق بفعالية.

المتطلبات

قبل البدء، تأكد من توفر ما يلي:

  • حساب ElevenLabs مع مفتاح API.
  • Python مثبت على جهازك.
  • FFMPEG لتشغيل الصوت.

الإعداد

تثبيت SDK

للبدء، ثبّت SDKs والمكتبات اللازمة. ستحتاج إلى ElevenLabs SDK لتحديث قواميس النطق واستخدام تحويل النص إلى كلام. ثبّته باستخدام pip:

pip install elevenlabs

بالإضافة إلى ذلك، ثبّت python-dotenv لإدارة متغيرات البيئة الخاصة بك:

pip install python-dotenv

أنشئ ملف .env في مجلد مشروعك واملأه ببيانات الاعتماد الخاصة بك:

ELEVENLABS_API_KEY=your_elevenlabs_api_key_here

تهيئة Client SDK

هيّئ client SDK بالكود التالي:

import os
from elevenlabs.client import ElevenLabs
 
ELEVENLABS_API_KEY = os.getenv("ELEVENLABS_API_KEY")
client = ElevenLabs(
    api_key=ELEVENLABS_API_KEY,
)

إنشاء قاموس نطق

لإنشاء قاموس نطق من ملف، تحتاج إلى إنشاء ملف .pls لقواعدك. سيستخدم هذا الملف أبجدية "IPA" لتحديث النطق. احفظه باسم dictionary.pls.

<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0"
      xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
        http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
      alphabet="ipa" xml:lang="en-US">
  <lexeme>
    <grapheme>tomato</grapheme>
    <phoneme>/tə'meɪtoʊ/</phoneme>
  </lexeme>
  <lexeme>
    <grapheme>Tomato</grapheme>
    <phoneme>/tə'meɪtoʊ/</phoneme>
  </lexeme>
</lexicon>

أضف القواعد من الملف وأنشئ صوت تحويل النص إلى كلام لمقارنة النتائج:

import requests
from elevenlabs import play, PronunciationDictionaryVersionLocator
 
with open("dictionary.pls", "rb") as f:
    pronunciation_dictionary = client.pronunciation_dictionary.add_from_file(
        file=f.read(), name="example"
    )
 
audio_1 = client.generate(
    text="Without the dictionary: tomato",
    voice="Rachel",
    model="eleven_turbo_v2",
)
 
audio_2 = client.generate(
    text="With the dictionary: tomato",
    voice="Rachel",
    model="eleven_turbo_v2",
    pronunciation_dictionary_locators=[
        PronunciationDictionaryVersionLocator(
            pronunciation_dictionary_id=pronunciation_dictionary.id,
            version_id=pronunciation_dictionary.version_id,
        )
    ],
)
 
play(audio_1)
play(audio_2)

تعديل قواميس النطق

إزالة القواعد

لإزالة القواعد، استخدم طريقة remove_rules_from_the_pronunciation_dictionary:

pronunciation_dictionary_rules_removed = (
    client.pronunciation_dictionary.remove_rules_from_the_pronunciation_dictionary(
        pronunciation_dictionary_id=pronunciation_dictionary.id,
        rule_strings=["tomato", "Tomato"],
    )
)
 
audio_3 = client.generate(
    text="With the rule removed: tomato",
    voice="Rachel",
    model="eleven_turbo_v2",
    pronunciation_dictionary_locators=[
        PronunciationDictionaryVersionLocator(
            pronunciation_dictionary_id=pronunciation_dictionary_rules_removed.id,
            version_id=pronunciation_dictionary_rules_removed.version_id,
        )
    ],
)
 
play(audio_3)

إضافة القواعد

أضف القواعد مباشرة باستخدام فئة PronunciationDictionaryRule_Phoneme:

from elevenlabs import PronunciationDictionaryRule_Phoneme
 
pronunciation_dictionary_rules_added = client.pronunciation_dictionary.add_rules_to_the_pronunciation_dictionary(
    pronunciation_dictionary_id=pronunciation_dictionary_rules_removed.id,
    rules=[
        PronunciationDictionaryRule_Phoneme(
            type="phoneme",
            alphabet="ipa",
            string_to_replace="tomato",
            phoneme="/tə'meɪtoʊ/",
        ),
        PronunciationDictionaryRule_Phoneme(
            type="phoneme",
            alphabet="ipa",
            string_to_replace="Tomato",
            phoneme="/tə'meɪtoʊ/",
        ),
    ],
)
 
audio_4 = client.generate(
    text="With the rule added again: tomato",
    voice="Rachel",
    model="eleven_turbo_v2",
    pronunciation_dictionary_locators=[
        PronunciationDictionaryVersionLocator(
            pronunciation_dictionary_id=pronunciation_dictionary_rules_added.id,
            version_id=pronunciation_dictionary_rules_added.version_id,
        )
    ],
)
 
play(audio_4)

الخلاصة

باتباع هذا الدليل، يمكنك إدارة قواميس النطق بفعالية لتحسين تطبيقات تحويل النص إلى كلام. لمزيد من التفاصيل، راجع ملفات المشروع الكاملة.


المرجع: هذه المقالة مبنية على معلومات من ElevenLabs. لمزيد من التفاصيل، قم بزيارة ElevenLabs. المؤلف: فريق ElevenLabs.


هل تريد قراءة المزيد من الدروس التعليمية؟ تحقق من أحدث درس تعليمي لدينا على ترقية وتخفيض الاشتراكات باستخدام Laravel و stripe-php.

ناقش مشروعك معنا

نحن هنا للمساعدة في احتياجات تطوير الويب الخاصة بك. حدد موعدًا لمناقشة مشروعك وكيف يمكننا مساعدتك.

دعنا نجد أفضل الحلول لاحتياجاتك.

مقالات ذات صلة

البدء مع ALLaM-7B-Instruct-preview

تعلم كيفية استخدام نموذج ALLaM-7B-Instruct-preview مع Python، وكيفية التفاعل معه من JavaScript عبر واجهة برمجة مستضافة (مثل Hugging Face Spaces).

8 د قراءة·