تحويل النص إلى حاويات الكلام باستخدام Docker

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

لمزيد من المعلومات حول المتطلبات الأساسية، والتحقق من تشغيل حاوية، وتشغيل حاويات متعددة على نفس المضيف، وتشغيل حاويات غير متصلة، راجع تثبيت حاويات الكلام وتشغيلها باستخدام Docker.

صور الحاوية

يمكن العثور على النص العصبي لصورة حاوية الكلام لجميع الإصدارات و المحلية المدعومة في نقابة Microsoft Container Registry (MCR ). موجودة داخل المستودع azure-cognitive-services/speechservices/ ويطلق عليها اسم neural-text-to-speech.

A screenshot of the search connectors and triggers dialog.

اسم نسخة الحاوية المؤهل بالكامل هو mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech. إما إلحاق إصدار معين أو إلحاق :latest للحصول على أحدث إصدار.

إصدار المسار
الأحدث mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:latest

تسحب العلامة latest الإعداد المحلي en-US وen-us-arianeural الصوت.
3.1.0 mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:3.1.0-amd64-en-us-arianeural

تكون جميع العلامات، باستثناء latest، بالتنسيق التالي وهي حساسة لحالة الأحرف:

<major>.<minor>.<patch>-<platform>-<voice>-<preview>

تتوفر العلامات أيضا بتنسيق JSON لراحتك. يتضمن النص الأساسي مسار الحاوية وقائمة العلامات. لا يتم فرز العلامات حسب الإصدار، ولكن "latest" يتم تضمينها دائما في نهاية القائمة كما هو موضح في هذه القصاصة البرمجية:

{
  "name": "azure-cognitive-services/speechservices/neural-text-to-speech",
  "tags": [
    <--redacted for brevity-->
    "3.1.0-amd64-en-us-arianeural",
    "3.1.0-amd64-en-us-guyneural",
    "3.1.0-amd64-en-us-jennymultilingualneural",
    "3.1.0-amd64-en-us-jennyneural",
    "3.1.0-amd64-en-us-michelleneural",
    "3.1.0-amd64-es-es-alvaroneural",
    "3.1.0-amd64-es-es-elviraneural",
    "3.1.0-amd64-es-mx-candelaneural",
    "3.1.0-amd64-es-mx-dalianeural",
    "3.1.0-amd64-es-mx-jorgeneural",
    <--redacted for brevity-->
    "latest"
  ]
}

هام

قمنا بإيقاف أصوات تركيب الكلام القياسية والنص القياسي إلى حاوية الكلام في 31 أغسطس 2021. يجب عليك استخدام الأصوات العصبية مع حاوية العصبية النص إلى كلام الإصدار 3.0 وأعلى بدلا من ذلك.

بدءا من 29 فبراير 2024، لا يتم دعم النص إلى الكلام والنص العصبي إلى إصدارات حاوية الكلام 2.19 والإصدارات السابقة. لمزيد من المعلومات حول تحديث التطبيق الخاص بك، راجع الترحيل من صوت قياسي إلى صوت عصبي تم إنشاؤه مسبقاً.

الحصول على صورة الحاوية باستخدام docker pull

تحتاج إلى المتطلبات الأساسية بما في ذلك الأجهزة المطلوبة. راجع أيضا التخصيص الموصى به للموارد لكل حاوية Speech.

استخدم الأمر سحب docker لتنزيل صورة حاوية من Microsoft Container Registry:

docker pull mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:latest

هام

تسحب العلامة latest الإعداد المحلي en-US وen-us-arianeural الصوت. للحصول على لغات وأصوات إضافية، راجع النص إلى صور حاوية الكلام.

تشغيل الحاوية باستخدام تشغيل docker

استخدم الأمر docker run لتشغيل الحاوية.

يمثل الجدول التالي معلمات docker run المختلفة والأوصاف المقابلة لها:

المعلمة ‏‏الوصف‬
{ENDPOINT_URI} نقطة النهاية مطلوبة للقياس والفوترة. لمزيد من المعلومات، راجع وسيطات الفوترة.
{API_KEY} مفتاح API مطلوب. لمزيد من المعلومات، راجع وسيطات الفوترة.

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

فيما يلي مثال docker run على الأمر مع قيم العنصر النائب. يجب تحديد ENDPOINT_URI قيم و API_KEY :

docker run --rm -it -p 5000:5000 --memory 12g --cpus 6 \
mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

هذا الأمر:

  • تشغيل نص عصبي إلى حاوية الكلام من صورة الحاوية.
  • يخصص 6 ذاكرات أساسية للمعالج و12 غيغابايت من الذاكرة.
  • يعرض منفذ TCP 5000 ويخصص TTY زائف للحاوية.
  • يزيل الحاوية تلقائياً بعد إنهائها. صورة الحاوية لا تزال متوفرة على الكمبيوتر المضيف.

لمزيد من المعلومات حول docker run حاويات الكلام، راجع تثبيت حاويات الكلام وتشغيلها باستخدام Docker.

استخدام الحاوية

توفر حاويات الكلام واجهات برمجة تطبيقات نقطة نهاية الاستعلام المستندة إلى websocket التي يتم الوصول إليها من خلال Speech SDK و Speech CLI. بشكل افتراضي، يستخدم Speech SDK و Speech CLI خدمة Speech العامة. لاستخدام الحاوية، تحتاج إلى تغيير أسلوب التهيئة.

هام

عند استخدام خدمة Speech مع حاويات، تأكد من استخدام مصادقة المضيف. إذا قمت بتكوين المفتاح والمنطقة، فستنتقل الطلبات إلى خدمة الكلام العامة. قد لا تكون النتائج من خدمة الكلام كما تتوقع. ستفشل الطلبات من الحاويات غير المتصلة.

بدلا من استخدام تكوين تهيئة سحابة Azure هذا:

var config = SpeechConfig.FromSubscription(...);

استخدم هذا التكوين مع مضيف الحاوية:

var config = SpeechConfig.FromHost(
    new Uri("http://localhost:5000"));

بدلا من استخدام تكوين تهيئة سحابة Azure هذا:

auto speechConfig = SpeechConfig::FromSubscription(...);

استخدم هذا التكوين مع مضيف الحاوية:

auto speechConfig = SpeechConfig::FromHost("http://localhost:5000");

بدلا من استخدام تكوين تهيئة سحابة Azure هذا:

speechConfig, err := speech.NewSpeechConfigFromSubscription(...)

استخدم هذا التكوين مع مضيف الحاوية:

speechConfig, err := speech.NewSpeechConfigFromHost("http://localhost:5000")

بدلا من استخدام تكوين تهيئة سحابة Azure هذا:

SpeechConfig speechConfig = SpeechConfig.fromSubscription(...);

استخدم هذا التكوين مع مضيف الحاوية:

SpeechConfig speechConfig = SpeechConfig.fromHost("http://localhost:5000");

بدلا من استخدام تكوين تهيئة سحابة Azure هذا:

const speechConfig = sdk.SpeechConfig.fromSubscription(...);

استخدم هذا التكوين مع مضيف الحاوية:

const speechConfig = sdk.SpeechConfig.fromHost("http://localhost:5000");

بدلا من استخدام تكوين تهيئة سحابة Azure هذا:

SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithSubscription:...];

استخدم هذا التكوين مع مضيف الحاوية:

SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithHost:"http://localhost:5000"];

بدلا من استخدام تكوين تهيئة سحابة Azure هذا:

let speechConfig = SPXSpeechConfiguration(subscription: "", region: "");

استخدم هذا التكوين مع مضيف الحاوية:

let speechConfig = SPXSpeechConfiguration(host: "http://localhost:5000");

بدلا من استخدام تكوين تهيئة سحابة Azure هذا:

speech_config = speechsdk.SpeechConfig(
    subscription=speech_key, region=service_region)

استخدم هذا التكوين مع نقطة نهاية الحاوية:

speech_config = speechsdk.SpeechConfig(
    host="http://localhost:5000")

عند استخدام Speech CLI في حاوية، قم بتضمين --host http://localhost:5000/ الخيار . يجب عليك أيضا تحديد --key none للتأكد من أن CLI لا يحاول استخدام مفتاح الكلام للمصادقة. للحصول على معلومات حول كيفية تكوين Speech CLI، راجع بدء استخدام Azure الذكاء الاصطناعي Speech CLI.

جرب النص إلى التشغيل السريع للكلام باستخدام مصادقة المضيف بدلا من المفتاح والمنطقة.

عنصر صوت SSML

عند إنشاء نص عصبي إلى كلام HTTP POST، تتطلب رسالة SSML عنصرا voice بسمة name . يجب أن تتوافق إعدادات الصوت المحلية مع إعدادات نموذج الحاوية.

على سبيل المثال، النموذج الذي تم تنزيله عبر العلامة latest (الإعدادات الافتراضية إلى "en-US") سيكون له اسم صوتي ل en-US-AriaNeural.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AriaNeural">
        This is the text that is spoken.
    </voice>
</speak>

الخطوات التالية