5.8 KiB
تحويل النص إلى كلام - جهاز إنترنت الأشياء الافتراضي
في هذا الجزء من الدرس، ستكتب كودًا لتحويل النص إلى كلام باستخدام خدمة الكلام.
تحويل النص إلى كلام
يمكن استخدام حزمة SDK لخدمات الكلام التي استخدمتها في الدرس السابق لتحويل الكلام إلى نص لتحويل النص مرة أخرى إلى كلام. عند طلب الكلام، تحتاج إلى تحديد الصوت الذي سيتم استخدامه، حيث يمكن إنشاء الكلام باستخدام مجموعة متنوعة من الأصوات المختلفة.
كل لغة تدعم مجموعة من الأصوات المختلفة، ويمكنك الحصول على قائمة الأصوات المدعومة لكل لغة من خلال حزمة SDK لخدمات الكلام.
المهمة - تحويل النص إلى كلام
-
افتح مشروع
smart-timer
في VS Code، وتأكد من تحميل البيئة الافتراضية في الطرفية. -
قم باستيراد
SpeechSynthesizer
من الحزمةazure.cognitiveservices.speech
عن طريق إضافته إلى الاستيرادات الحالية:from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer, SpeechSynthesizer
-
فوق وظيفة
say
، قم بإنشاء إعدادات الكلام لاستخدامها مع المولد الصوتي:speech_config = SpeechConfig(subscription=speech_api_key, region=location) speech_config.speech_synthesis_language = language speech_synthesizer = SpeechSynthesizer(speech_config=speech_config)
يستخدم هذا نفس مفتاح API، الموقع، واللغة التي استخدمها المميز الصوتي.
-
أسفل هذا، أضف الكود التالي للحصول على صوت وتعيينه في إعدادات الكلام:
voices = speech_synthesizer.get_voices_async().get().voices first_voice = next(x for x in voices if x.locale.lower() == language.lower()) speech_config.speech_synthesis_voice_name = first_voice.short_name
يقوم هذا باسترجاع قائمة بجميع الأصوات المتاحة، ثم يجد أول صوت يتطابق مع اللغة المستخدمة.
💁 يمكنك الحصول على القائمة الكاملة للأصوات المدعومة من وثائق دعم اللغة والصوت على Microsoft Docs. إذا كنت ترغب في استخدام صوت معين، يمكنك إزالة هذه الوظيفة وتحديد الصوت مباشرة باستخدام اسم الصوت من هذه الوثائق. على سبيل المثال:
speech_config.speech_synthesis_voice_name = 'hi-IN-SwaraNeural'
-
قم بتحديث محتويات وظيفة
say
لإنشاء SSML للاستجابة:ssml = f'<speak version=\'1.0\' xml:lang=\'{language}\'>' ssml += f'<voice xml:lang=\'{language}\' name=\'{first_voice.short_name}\'>' ssml += text ssml += '</voice>' ssml += '</speak>'
-
أسفل هذا، قم بإيقاف التعرف على الكلام، تحدث SSML، ثم أعد تشغيل التعرف:
recognizer.stop_continuous_recognition() speech_synthesizer.speak_ssml(ssml) recognizer.start_continuous_recognition()
يتم إيقاف التعرف أثناء التحدث لتجنب اكتشاف إعلان بدء المؤقت، إرساله إلى LUIS، وربما تفسيره كطلب لتعيين مؤقت جديد.
💁 يمكنك اختبار ذلك عن طريق تعليق الأسطر لإيقاف وإعادة تشغيل التعرف. قم بتعيين مؤقت واحد، وقد تجد أن الإعلان يعين مؤقتًا جديدًا، مما يؤدي إلى إعلان جديد، مما يسبب مؤقتًا جديدًا، وهكذا إلى الأبد!
-
قم بتشغيل التطبيق، وتأكد من تشغيل تطبيق الوظيفة أيضًا. قم بتعيين بعض المؤقتات، وستسمع استجابة صوتية تقول إن المؤقت الخاص بك قد تم تعيينه، ثم استجابة صوتية أخرى عندما يكتمل المؤقت.
💁 يمكنك العثور على هذا الكود في مجلد code-spoken-response/virtual-iot-device.
😀 برنامج المؤقت الخاص بك كان ناجحًا!
إخلاء المسؤولية:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.