واجهة برمجة تطبيقات REST لتحويل النص إلى كلام

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

تلميح

حالات استخدام النص إلى كلام REST API محدودة. استخدمه فقط في الحالات التي لا يمكنك فيها استخدام Speech SDK. على سبيل المثال، باستخدام Speech SDK، يمكنك الاشتراك في الأحداث للحصول على مزيد من الرؤى حول معالجة النص إلى الكلام والنتائج.

يدعم النص إلى كلام REST API النص العصبي لأصوات الكلام في العديد من الشبكات المحلية. كل نقطة نهاية متوفرة مقترنة بمنطقة ما. مطلوب مفتاح مورد Speech لنقطة النهاية أو المنطقة التي تخطط لاستخدامها. فيما يلي بعض الارتباطات لمزيد من المعلومات:

هام

تختلف التكاليف للأصوات العصبية التي تم إنشاؤها مسبقاً (تُسمى Neural في صفحة الأسعار) والأصوات العصبية المخصصة (تُسمى Custom Neural في صفحة الأسعار). لمزيد من المعلومات، راجع أسعار خدمة Speech.

قبل استخدام النص إلى speech REST API، افهم أنك بحاجة إلى إكمال تبادل الرمز المميز كجزء من المصادقة للوصول إلى الخدمة. لمزيد من المعلومات، راجع المصادقة.

الحصول على قائمة بالأصوات

يمكنك استخدام tts.speech.microsoft.com/cognitiveservices/voices/list نقطة النهاية للحصول على قائمة كاملة بالأصوات لمنطقة أو نقطة نهاية معينة. قم ببادئة نقطة نهاية قائمة الأصوات بمنطقة للحصول على قائمة أصوات لتلك المنطقة. على سبيل المثال، للحصول على قائمة بأصوات westus المنطقة، استخدم https://westus.tts.speech.microsoft.com/cognitiveservices/voices/list نقطة النهاية. للحصول على قائمة بجميع المناطق المدعومة ، راجع وثائق المناطق .

إشعار

تتوفر الأصوات والأنماط في المعاينة فقط في ثلاث مناطق خدمة: شرق الولايات المتحدة وغرب أوروبا وجنوب شرق آسيا.

عناوين الطلبات

يسرد هذا الجدول الرؤوس المطلوبة والاختيارية لطلبات تحويل النص إلى كلام:

الرأس ‏‏الوصف مطلوب أو اختياري
Ocp-Apim-Subscription-Key مفتاح مورد Speech. هذا العنوان أو Authorization مطلوب.
Authorization رمز مميز للتخويل تسبقه الكلمة Bearer. لمزيد من المعلومات، راجع المصادقة. هذا العنوان أو Ocp-Apim-Subscription-Key مطلوب.

نص الطلب

النص الأساسي لطلبات GET غير مطلوب لنقطة النهاية هذه.

نموذج الطلب

يجب تضمين عنوان تخويل فقط في هذا الطلب:

GET /cognitiveservices/voices/list HTTP/1.1

Host: westus.tts.speech.microsoft.com
Ocp-Apim-Subscription-Key: YOUR_RESOURCE_KEY

فيما يلي مثال لأمر curl:

curl --location --request GET 'https://YOUR_RESOURCE_REGION.tts.speech.microsoft.com/cognitiveservices/voices/list' \
--header 'Ocp-Apim-Subscription-Key: YOUR_RESOURCE_KEY'

استجابة العينة

يجب أن تتلقى استجابة مع نص JSON يتضمن جميع الشبكات المحلية المدعومة والأصوات والجنس والأنماط والتفاصيل الأخرى. WordsPerMinute يمكن استخدام الخاصية لكل صوت لتقدير طول كلام الإخراج. يوضح مثال JSON هذا نتائج جزئية لتوضيح بنية الاستجابة:

[  
    // Redacted for brevity
    {
        "Name": "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
        "DisplayName": "Jenny",
        "LocalName": "Jenny",
        "ShortName": "en-US-JennyNeural",
        "Gender": "Female",
        "Locale": "en-US",
        "LocaleName": "English (United States)",
        "StyleList": [
          "assistant",
          "chat",
          "customerservice",
          "newscast",
          "angry",
          "cheerful",
          "sad",
          "excited",
          "friendly",
          "terrified",
          "shouting",
          "unfriendly",
          "whispering",
          "hopeful"
        ],
        "SampleRateHertz": "24000",
        "VoiceType": "Neural",
        "Status": "GA",
        "ExtendedPropertyMap": {
          "IsHighQuality48K": "True"
        },
        "WordsPerMinute": "152"
    },
    // Redacted for brevity
    {
        "Name": "Microsoft Server Speech Text to Speech Voice (en-US, JennyMultilingualNeural)",
        "DisplayName": "Jenny Multilingual",
        "LocalName": "Jenny Multilingual",
        "ShortName": "en-US-JennyMultilingualNeural",
        "Gender": "Female",
        "Locale": "en-US",
        "LocaleName": "English (United States)",
        "SecondaryLocaleList": [
          "de-DE",
          "en-AU",
          "en-CA",
          "en-GB",
          "es-ES",
          "es-MX",
          "fr-CA",
          "fr-FR",
          "it-IT",
          "ja-JP",
          "ko-KR",
          "pt-BR",
          "zh-CN"
        ],
        "SampleRateHertz": "24000",
        "VoiceType": "Neural",
        "Status": "GA",
        "WordsPerMinute": "190"
    },
    // Redacted for brevity
    {
        "Name": "Microsoft Server Speech Text to Speech Voice (ga-IE, OrlaNeural)",
        "DisplayName": "Orla",
        "LocalName": "Orla",
        "ShortName": "ga-IE-OrlaNeural",
        "Gender": "Female",
        "Locale": "ga-IE",
        "LocaleName": "Irish (Ireland)",
        "SampleRateHertz": "24000",
        "VoiceType": "Neural",
        "Status": "GA",
        "WordsPerMinute": "139"
    },
    // Redacted for brevity
    {
        "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, YunxiNeural)",
        "DisplayName": "Yunxi",
        "LocalName": "云希",
        "ShortName": "zh-CN-YunxiNeural",
        "Gender": "Male",
        "Locale": "zh-CN",
        "LocaleName": "Chinese (Mandarin, Simplified)",
        "StyleList": [
          "narration-relaxed",
          "embarrassed",
          "fearful",
          "cheerful",
          "disgruntled",
          "serious",
          "angry",
          "sad",
          "depressed",
          "chat",
          "assistant",
          "newscast"
        ],
        "SampleRateHertz": "24000",
        "VoiceType": "Neural",
        "Status": "GA",
        "RolePlayList": [
          "Narrator",
          "YoungAdultMale",
          "Boy"
        ],
        "WordsPerMinute": "293"
    },
    // Redacted for brevity
]

تعليمة برمجية حالة HTTP

تشير تعليمة حالة HTTP البرمجية لكل استجابة إلى النجاح أو الأخطاء الشائعة.

رمز حالة HTTP ‏‏الوصف السبب المحتمل
200 موافق الطلب ناجح.
400 طلب غير صالح معلمة مطلوبة مفقودة أو فارغة أو خالية. أو، القيمة التي تم تمريرها إلى معلمة مطلوبة أو اختيارية غير صالحة. أحد الأسباب الشائعة هو أن العنوان طويل جداً.
401 غير مصرح به الطلب غير مفوض به. تأكد من أن مفتاح المورد أو الرمز المميز صالح وفي المنطقة الصحيحة.
429 طلبات كثيرة جدًا لقد تجاوزت الحصة النسبية أو معدل الطلبات المسموح بها للمورد الخاص بك.
502 مدخل خطأ توجد مشكلة في الشبكة أو الخادم. قد تشير هذه الحالة أيضاً إلى عناوين غير صالحة.

تحويل النص إلى كلام

تسمح لك نقطة نهاية cognitiveservices/v1 بتحويل النص إلى كلام باستخدام Speech Synthesis Markup Language (SSML).

المناطق ونقاط النهاية

يتم دعم هذه المناطق لتحويل النص إلى كلام من خلال واجهة برمجة تطبيقات REST. تأكد من تحديد نقطة النهاية التي تطابق منطقة مورد Speech.

الأصوات العصبية التي تم إنشاؤها مسبقاً

استخدم هذا الجدول لتحديد توفر الأصوات العصبية حسب المنطقة أو نقطة النهاية:

المنطقة نقطة النهاية
شرق أستراليا https://australiaeast.tts.speech.microsoft.com/cognitiveservices/v1
جنوب البرازيل https://brazilsouth.tts.speech.microsoft.com/cognitiveservices/v1
وسط كندا https://canadacentral.tts.speech.microsoft.com/cognitiveservices/v1
Central US https://centralus.tts.speech.microsoft.com/cognitiveservices/v1
شرق آسيا https://eastasia.tts.speech.microsoft.com/cognitiveservices/v1
شرق الولايات المتحدة https://eastus.tts.speech.microsoft.com/cognitiveservices/v1
East US 2 https://eastus2.tts.speech.microsoft.com/cognitiveservices/v1
وسط فرنسا https://francecentral.tts.speech.microsoft.com/cognitiveservices/v1
وسط غرب ألمانيا https://germanywestcentral.tts.speech.microsoft.com/cognitiveservices/v1
وسط الهند https://centralindia.tts.speech.microsoft.com/cognitiveservices/v1
شرق اليابان https://japaneast.tts.speech.microsoft.com/cognitiveservices/v1
غرب اليابان https://japanwest.tts.speech.microsoft.com/cognitiveservices/v1
جيو الهند الغربية https://jioindiawest.tts.speech.microsoft.com/cognitiveservices/v1
وسط كوريا https://koreacentral.tts.speech.microsoft.com/cognitiveservices/v1
وسط شمال الولايات المتحدة https://northcentralus.tts.speech.microsoft.com/cognitiveservices/v1
أوروبا الشمالية https://northeurope.tts.speech.microsoft.com/cognitiveservices/v1
شرق النرويج https://norwayeast.tts.speech.microsoft.com/cognitiveservices/v1
South Central US https://southcentralus.tts.speech.microsoft.com/cognitiveservices/v1
جنوب شرق آسيا https://southeastasia.tts.speech.microsoft.com/cognitiveservices/v1
منطقة السويد الوسطى https://swedencentral.tts.speech.microsoft.com/cognitiveservices/v1
شمال سويسرا https://switzerlandnorth.tts.speech.microsoft.com/cognitiveservices/v1
غرب سويسرا https://switzerlandwest.tts.speech.microsoft.com/cognitiveservices/v1
شمال الإمارات العربية المتحدة https://uaenorth.tts.speech.microsoft.com/cognitiveservices/v1
US Gov – أريزونا https://usgovarizona.tts.speech.azure.us/cognitiveservices/v1
ولاية فرجينيا الأمريكية https://usgovvirginia.tts.speech.azure.us/cognitiveservices/v1
جنوب المملكة المتحدة https://uksouth.tts.speech.microsoft.com/cognitiveservices/v1
غرب وسط الولايات المتحدة https://westcentralus.tts.speech.microsoft.com/cognitiveservices/v1
أوروبا الغربية https://westeurope.tts.speech.microsoft.com/cognitiveservices/v1
غرب الولايات المتحدة https://westus.tts.speech.microsoft.com/cognitiveservices/v1
West US 2 https://westus2.tts.speech.microsoft.com/cognitiveservices/v1
غرب الولايات المتحدة الأمريكية 3 https://westus3.tts.speech.microsoft.com/cognitiveservices/v1

تلميح

تتوفر الأصوات في المعاينة في المناطق الثلاثة التالية فقط: شرق الولايات المتحدة وغرب أوروبا وجنوب شرق آسيا.

الأصوات العصبية المخصصة

إذا أنشأت خط صوت عصبي مخصصًا، فاستخدم نقطة النهاية التي أنشأتها. يمكنك أيضاً استخدام نقاط النهاية التالية. استبدل {deploymentId} بمعرف التوزيع لنموذج الصوت العصبي لديك.

المنطقة التدريب التوزيع نقطة النهاية
شرق أستراليا ‏‏نعم‬ ‏‏نعم‬ https://australiaeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
جنوب البرازيل لا ‏‏نعم‬ https://brazilsouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
وسط كندا لا ‏‏نعم‬ https://canadacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Central US لا ‏‏نعم‬ https://centralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
شرق آسيا لا ‏‏نعم‬ https://eastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
شرق الولايات المتحدة ‏‏نعم‬ ‏‏نعم‬ https://eastus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
East US 2 ‏‏نعم‬ ‏‏نعم‬ https://eastus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
وسط فرنسا لا ‏‏نعم‬ https://francecentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
وسط غرب ألمانيا لا ‏‏نعم‬ https://germanywestcentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
وسط الهند ‏‏نعم‬ ‏‏نعم‬ https://centralindia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
شرق اليابان ‏‏نعم‬ ‏‏نعم‬ https://japaneast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
غرب اليابان لا ‏‏نعم‬ https://japanwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
جيو الهند الغربية لا ‏‏نعم‬ https://jioindiawest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
وسط كوريا ‏‏نعم‬ ‏‏نعم‬ https://koreacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
وسط شمال الولايات المتحدة لا ‏‏نعم‬ https://northcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
أوروبا الشمالية ‏‏نعم‬ ‏‏نعم‬ https://northeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
شرق النرويج لا ‏‏نعم‬ https://norwayeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
جنوب أفريقيا لا ‏‏نعم‬ https://southafricanorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
South Central US ‏‏نعم‬ ‏‏نعم‬ https://southcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
جنوب شرق آسيا ‏‏نعم‬ ‏‏نعم‬ https://southeastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
شمال سويسرا لا ‏‏نعم‬ https://switzerlandnorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
غرب سويسرا لا ‏‏نعم‬ https://switzerlandwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
شمال الإمارات العربية المتحدة لا ‏‏نعم‬ https://uaenorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
جنوب المملكة المتحدة ‏‏نعم‬ ‏‏نعم‬ https://uksouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
غرب وسط الولايات المتحدة لا ‏‏نعم‬ https://westcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
أوروبا الغربية ‏‏نعم‬ ‏‏نعم‬ https://westeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
غرب الولايات المتحدة ‏‏نعم‬ ‏‏نعم‬ https://westus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
West US 2 ‏‏نعم‬ ‏‏نعم‬ https://westus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
غرب الولايات المتحدة الأمريكية 3 لا نعم https://westus3.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}

إشعار

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

واجهة برمجة التطبيقات Long Audio

تتوفر واجهة برمجة تطبيقات Long Audio في مناطق متعددة ذات نقاط نهاية فريدة:

المنطقة نقطة النهاية
شرق أستراليا https://australiaeast.customvoice.api.speech.microsoft.com
شرق الولايات المتحدة https://eastus.customvoice.api.speech.microsoft.com
وسط الهند https://centralindia.customvoice.api.speech.microsoft.com
South Central US https://southcentralus.customvoice.api.speech.microsoft.com
جنوب شرق آسيا https://southeastasia.customvoice.api.speech.microsoft.com
جنوب المملكة المتحدة https://uksouth.customvoice.api.speech.microsoft.com
أوروبا الغربية https://westeurope.customvoice.api.speech.microsoft.com

عناوين الطلبات

يسرد هذا الجدول الرؤوس المطلوبة والاختيارية لطلبات تحويل النص إلى كلام:

الرأس ‏‏الوصف مطلوب أو اختياري
Authorization رمز مميز للتخويل تسبقه الكلمة Bearer. لمزيد من المعلومات، راجع المصادقة. المطلوب
Content-Type تحديد نوع المحتوى للنص المتوفر. القيمة المقبولة: application/ssml+xml. المطلوب
X-Microsoft-OutputFormat تحديد تنسيق إخراج الصوت. للحصول على قائمة كاملة بالقيم المقبولة، راجع Audio outputs. المطلوب
User-Agent اسم التطبيق. يجب أن تكون القيمة المكتوبة أقل من 255 حرفاً. المطلوب

نص الطلب

إذا كنت تستخدم صوتاً عصبياً مخصصاً، يمكن إرسال نص الطلب كنص عادي (ASCII أو UTF-8). أو بدلاً من ذلك، يتم إرسال نص كل طلب POST باعتباره SSML. يسمح لك SSML باختيار صوت ولغة الكلام المركب الذي ترجعه ميزة تحويل النص إلى كلام. للحصول على قائمة كاملة بالأصوات المدعمة، راجع دعم اللغة والصوت لخدمة Speech.

نموذج الطلب

يستخدم طلب HTTP هذا SSML لتحديد الصوت واللغة. إذا كان النص طويلاً، والصوت الناتج يتجاوز 10 دقائق، فسيتم اقتطاعه إلى 10 دقائق. بمعنى آخر، لا يمكن أن يتجاوز طول الصوت 10 دقائق.

POST /cognitiveservices/v1 HTTP/1.1

X-Microsoft-OutputFormat: riff-24khz-16bit-mono-pcm
Content-Type: application/ssml+xml
Host: westus.tts.speech.microsoft.com
Content-Length: <Length>
Authorization: Bearer [Base64 access_token]
User-Agent: <Your application name>

<speak version='1.0' xml:lang='en-US'><voice xml:lang='en-US' xml:gender='Male'
    name='en-US-ChristopherNeural'>
        I'm excited to try text to speech!
</voice></speak>

* بالنسبة إلى طول المحتوى، يجب استخدام طول المحتوى الخاص بك. في معظم الحالات، يتم حساب هذه القيمة تلقائياً.

تعليمة برمجية حالة HTTP

تشير التعليمة البرمجية لحالة HTTP لكل استجابة إلى النجاح أو الأخطاء الشائعة:

رمز حالة HTTP ‏‏الوصف السبب المحتمل
200 موافق الطلب ناجح. نص الاستجابة ملف صوتي.
400 طلب غير صالح معلمة مطلوبة مفقودة أو فارغة أو خالية. أو، القيمة التي تم تمريرها إلى معلمة مطلوبة أو اختيارية غير صالحة. أحد الأسباب الشائعة هو أن العنوان طويل جداً.
401 غير مصرح به الطلب غير مفوض به. تأكد من أن مفتاح مورد Speech أو الرمز المميز صالح وفي المنطقة الصحيحة.
415 نوع وسائط غير مدعم من المحتمل أن تكون قيمة Content-Type المقدمة خطأ. يجب تعيين Content-Type على application/ssml+xml.
429 طلبات كثيرة جدًا لقد تجاوزت الحصة النسبية أو معدل الطلبات المسموح بها للمورد الخاص بك.
502 مدخل خطأ توجد مشكلة في الشبكة أو الخادم. قد تشير هذه الحالة أيضاً إلى عناوين غير صالحة.

إذا كانت حالة HTTP هي 200 OK، فهذا يعني أن نص الاستجابة يحتوي على ملف صوتي بالتنسيق المطلوب. يمكن تشغيل هذا الملف أثناء نقله أو حفظه في مخزن مؤقت أو في ملف.

إخراج الصوت

يتم إرسال تنسيقات الصوت المتدفقة وغير المتدفقة المدعومة X-Microsoft-OutputFormat في كل طلب كعنوان. يتضمن كل تنسيق معدل بت ونوع ترميز. تدعم خدمة Speech إخراج الصوت 48 كيلوهرتز و24 كيلوهرتز و16 كيلوهرتز و8 كيلوهرتز. يتوفر كل نموذج صوتي عصبي تم إنشاؤه مسبقا بسرعة 24 كيلوهرتز وعالية الدقة 48 كيلوهرتز.

amr-wb-16000hz
audio-16khz-16bit-32kbps-mono-opus
audio-16khz-32kbitrate-mono-mp3
audio-16khz-64kbitrate-mono-mp3
audio-16khz-128kbitrate-mono-mp3
audio-24khz-16bit-24kbps-mono-opus
audio-24khz-16bit-48kbps-mono-opus
audio-24khz-48kbitrate-mono-mp3
audio-24khz-96kbitrate-mono-mp3
audio-24khz-160kbitrate-mono-mp3
audio-48khz-96kbitrate-mono-mp3
audio-48khz-192kbitrate-mono-mp3
ogg-16khz-16bit-mono-opus
ogg-24khz-16bit-mono-opus
ogg-48khz-16bit-mono-opus
raw-8khz-8bit-mono-alaw
raw-8khz-8bit-mono-mulaw
raw-8khz-16bit-mono-pcm
raw-16khz-16bit-mono-pcm
raw-16khz-16bit-mono-truesilk
raw-22050hz-16bit-mono-pcm
raw-24khz-16bit-mono-pcm
raw-24khz-16bit-mono-truesilk
raw-44100hz-16bit-mono-pcm
raw-48khz-16bit-mono-pcm
webm-16khz-16bit-mono-opus
webm-24khz-16bit-24kbps-mono-opus
webm-24khz-16bit-mono-opus

إشعار

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

إذا كان للصوت المحدد وتنسيق الإخراج معدلات بت مختلفة، فسيتم إعادة تعيين الصوت حسب الضرورة. يمكنك فك ترميز تنسيق ogg-24khz-16bit-mono-opus باستخدام Opus codec.

المصادقة

يتطلب كل طلب عنوان تخويل. يوضح هذا الجدول العناوين المدعمة لكل ميزة:

عنوان التخويل المدعم الكلام إلى النص نص إلى كلام
Ocp-Apim-Subscription-Key ‏‏نعم‬ نعم
Authorization: Bearer نعم ‏‏نعم‬

عند استخدام Ocp-Apim-Subscription-Key العنوان، يطلب منك فقط توفير مفتاح المورد الخاص بك. على سبيل المثال:

'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'

عند استخدام العنوان Authorization: Bearer، يُطلب منك تقديم طلب إلى نقطة نهاية issueToken. في هذا الطلب، يمكنك استبدال مفتاح المورد الخاص بك رمز مميز للوصول صالح لمدة 10 دقائق.

كيفية الحصول على الرمز المميز للوصول

للحصول على رمز مميز للوصول، تحتاج إلى تقديم طلب إلى issueToken نقطة النهاية باستخدام Ocp-Apim-Subscription-Key ومفتاح المورد الخاص بك.

لنقطة نهاية issueToken التنسيق التالي:

https://<REGION_IDENTIFIER>.api.cognitive.microsoft.com/sts/v1.0/issueToken

استبدل <REGION_IDENTIFIER> بالمعرّف الذي يتوافق مع منطقة اشتراكك.

استخدم النماذج التالية لإنشاء طلب الرمز المميز للوصول.

نموذج HTTP

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

POST /sts/v1.0/issueToken HTTP/1.1
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY
Host: eastus.api.cognitive.microsoft.com
Content-type: application/x-www-form-urlencoded
Content-Length: 0

يتضمن نص الاستجابة الرمز المميز للوصول بتنسيق JSON Web Token (JWT).

نموذج PowerShell

هذا المثال هو برنامج نصي بسيط من PowerShell للحصول على رمز مميز للوصول. استبدل YOUR_SUBSCRIPTION_KEY بمفتاح المورد لخدمة Speech. تأكد من استخدام نقطة النهاية الصحيحة للمنطقة التي تتوافق مع اشتراكك. هذا المثال مُعيّن حالياً على غرب الولايات المتحدة.

$FetchTokenHeader = @{
  'Content-type'='application/x-www-form-urlencoded';
  'Content-Length'= '0';
  'Ocp-Apim-Subscription-Key' = 'YOUR_SUBSCRIPTION_KEY'
}

$OAuthToken = Invoke-RestMethod -Method POST -Uri https://eastus.api.cognitive.microsoft.com/sts/v1.0/issueToken
 -Headers $FetchTokenHeader

# show the token received
$OAuthToken

عينة cURL

cURL أداة سطر أوامر متوفرة في Linux (وفي نظام Windows الفرعي لـ Linux‬). يوضح أمر cURL هذا كيفية الحصول على رمز مميز للوصول. استبدل YOUR_SUBSCRIPTION_KEY بمفتاح المورد لخدمة Speech. تأكد من استخدام نقطة النهاية الصحيحة للمنطقة التي تتوافق مع اشتراكك. هذا المثال مُعيّن حالياً على غرب الولايات المتحدة.

curl -v -X POST \
 "https://eastus.api.cognitive.microsoft.com/sts/v1.0/issueToken" \
 -H "Content-type: application/x-www-form-urlencoded" \
 -H "Content-Length: 0" \
 -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY"

عينة C#‎

توضح فئة C# هذه كيفية الحصول على رمز مميز للوصول. مرر مفتاح المورد لخدمة Speech عند إنشاء مثيل للفئة. إذا لم يكن اشتراكك في منطقة غرب الولايات المتحدة، فقم بتغيير قيمة FetchTokenUri لتتوافق مع منطقة اشتراكك.

public class Authentication
{
    public static readonly string FetchTokenUri =
        "https://eastus.api.cognitive.microsoft.com/sts/v1.0/issueToken";
    private string subscriptionKey;
    private string token;

    public Authentication(string subscriptionKey)
    {
        this.subscriptionKey = subscriptionKey;
        this.token = FetchTokenAsync(FetchTokenUri, subscriptionKey).Result;
    }

    public string GetAccessToken()
    {
        return this.token;
    }

    private async Task<string> FetchTokenAsync(string fetchUri, string subscriptionKey)
    {
        using (var client = new HttpClient())
        {
            client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
            UriBuilder uriBuilder = new UriBuilder(fetchUri);

            var result = await client.PostAsync(uriBuilder.Uri.AbsoluteUri, null);
            Console.WriteLine("Token Uri: {0}", uriBuilder.Uri.AbsoluteUri);
            return await result.Content.ReadAsStringAsync();
        }
    }
}

عينة Python

# Request module must be installed.
# Run pip install requests if necessary.
import requests

subscription_key = 'REPLACE_WITH_YOUR_KEY'


def get_token(subscription_key):
    fetch_token_url = 'https://eastus.api.cognitive.microsoft.com/sts/v1.0/issueToken'
    headers = {
        'Ocp-Apim-Subscription-Key': subscription_key
    }
    response = requests.post(fetch_token_url, headers=headers)
    access_token = str(response.text)
    print(access_token)

كيفية استخدام الرمز المميز للوصول

يجب إرسال الرمز المميز للوصول إلى الخدمة باعتباره عنوان Authorization: Bearer <TOKEN>. كل رمز مميز للوصول صالح لمدة 10 دقائق. يمكنك الحصول على رمز مميز جديد في أي وقت، ولكن لتقليل نسبة استخدام الشبكة وزمن الانتقال، نوصي باستخدام نفس الرمز المميز لمدة تسع دقائق.

فيما يلي نموذج طلب HTTP إلى Speech to text REST API للصوت القصير:

POST /cognitiveservices/v1 HTTP/1.1
Authorization: Bearer YOUR_ACCESS_TOKEN
Host: westus.stt.speech.microsoft.com
Content-type: application/ssml+xml
Content-Length: 199
Connection: Keep-Alive

// Message body here...

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