الكتابات/tutorial/2024/12
Tutorial9 ديسمبر 2024·15 دقيقة

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

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

قواميس النطق هي أدوات أساسية لإدارة كيفية نطق كلمات معينة في تطبيقات تحويل النص إلى كلام. سيرشدك هذا الدليل خلال استخدام 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.