Speech to text REST API for short audio

حالات استخدام Speech to text REST API للصوت القصير محدودة. استخدمه فقط في الحالات التي لا يمكنك فيها استخدام Speech SDK.

قبل استخدام Speech to text REST API للصوت القصير، ضع في اعتبارك القيود التالية:

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

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

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

تحتوي نقطة النهاية لواجهة برمجة تطبيقات REST للصوت القصير على هذا التنسيق:

https://<REGION_IDENTIFIER>.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1

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

إشعار

بالنسبة إلى Azure Government وMicrosoft Azure المشغلة بواسطة نقاط نهاية 21Vianet، راجع هذه المقالة حول السحب السيادية.

تنسيقات الصوت

يتم إرسال الصوت في نص طلب HTTP POST. يجب أن يكون بأحد التنسيقات في هذا الجدول:

Format برنامج ضغط الوسائط وفكها معدل البت معدل العينة
WAV PCM 256 كيلوبت في الثانية 16 كيلوهرتز، أحادي
OGG OPUS 256 كيلوبت في الثانية 16 كيلوهرتز، أحادي

إشعار

يتم دعم التنسيقات السابقة من خلال واجهة برمجة تطبيقات REST للصوت القصير وWebSocket في خدمة الكلام. يدعم Speech SDK تنسيق WAV مع برنامج ترميز PCM بالإضافة إلى تنسيقات أخرى.

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

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

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

هذه المعلمة هي JSON مرمزة بـBase64 تحتوي على معلمات مفصلة متعددة. لمعرفة كيفية إنشاء هذا العنوان، راجع معلمات تقييم النطق.
اختياري
Content-type يصف تنسيق وفك ترميز البيانات الصوتية المتوفرة. القيم المقبولة هي audio/wav; codecs=audio/pcm; samplerate=16000 وaudio/ogg; codecs=opus. المطلوب
Transfer-Encoding يحدد أنه يتم إرسال البيانات الصوتية المكعبة، بدلًا من ملف واحد. استخدم هذا العنوان فقط إذا كنت تقوم بتقسيم البيانات الصوتية. اختياري
Expect إذا كنت تستخدم النقل المكعب، فأرسل Expect: 100-continue. تعترف خدمة Speech بالطلب الأولي وتنتظر المزيد من البيانات. مطلوب إذا كنت ترسل بيانات صوتية مقتسمة.
Accept إذا تم توفيره، يجب أن يكون application/json. توفر خدمة Speech النتائج في JSON. توفر بعض أطر عمل الطلب قيمة افتراضية غير متوافقة. من الممارسات الجيدة تضمين Accept دائمًا. .اختياري ولكن مُستحسن.

معلمات الاستعلام

قد يتم تضمين هذه المعلمات في سلسلة الاستعلام لطلب REST.

إشعار

يجب إلحاق معلمة اللغة بعنوان URL لتجنب تلقي خطأ HTTP 4xx. على سبيل المثال، اللغة التي تم تعيينها إلى الإنجليزية الأمريكية عبر نقطة نهاية غرب الولايات المتحدة هي: https://westus.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=en-US.

المعلمة ‏‏الوصف‬ مطلوب أو اختياري
language يحدد اللغة المنطوقة التي يتم التعرف عليها. راجع اللغات المعتمدة. المطلوب
format تحديد تنسيق النتيجة. القيم المقبولة هي simple وdetailed. تتضمن النتائج البسيطة RecognitionStatus وDisplayText وOffset وDuration. تتضمن الاستجابات التفصيلية أربعة تمثيلات مختلفة لنص العرض. الإعداد الافتراضي هو simple. اختياري
profanity تحديد كيفية التعامل مع الألفاظ النابية في نتائج التعرف. القيم المقبولة هي:

masked، الذي يستبدل الألفاظ النابية بعلامات نجمية.
removed، الذي يزيل كل الألفاظ النابية من النتيجة.
raw، الذي يتضمن الألفاظ النابية في النتيجة.

الإعداد الافتراضي هو masked.
اختياري
cid عند استخدام Speech Studio لإنشاء نماذج مخصصة، يمكنك الاستفادة من قيمة معرف نقطة النهاية من صفحة النشر. استخدم قيمة معرف نقطة النهاية كوسيطة لمعلمة cid سلسلة الاستعلام. اختياري

معلمات تقييم النطق

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

المعلمة ‏‏الوصف‬ مطلوب أو اختياري
ReferenceText النص الذي يتم تقييم النطق مقابله. المطلوب
GradingSystem نظام النقاط لمعايرة النتيجة. يعطي النظام FivePoint درجة نقطة عائمة من 0 إلى 5، ويعطي HundredMark درجة نقطة عائمة من 0 إلى 100. افتراضي: FivePoint. اختياري
Granularity دقة التقييم. القيم المقبولة هي:

Phoneme، الذي يظهر النتيجة على مستويات النص الكامل والكلمة والهاتف.
Word، الذي يظهر النتيجة على مستويات النص الكامل والكلمة.
FullText، الذي يظهر النتيجة على مستوى النص الكامل فقط.

الإعداد الافتراضي هو Phoneme.
اختياري
Dimension تعريف معايير الإخراج. القيم المقبولة هي:

Basic، الذي يظهر درجة الدقة فقط.
Comprehensive، الذي يظهر الدرجات على المزيد من الأبعاد (على سبيل المثال، درجة الطلاقة ودرجة الاكتمال على مستوى النص الكامل، ونوع الخطأ على مستوى الكلمة).

للاطلاع على تعريفات أبعاد النقاط المختلفة وأنواع أخطاء الكلمات، راجع خصائص الاستجابة. الإعداد الافتراضي هو Basic.
اختياري
EnableMiscue تمكين حساب الأخطاء. مع تمكين هذه المعلمة، تتم مقارنة الكلمات النطقية بالنص المرجعي. يتم تمييزها بإغفال أو إدراج بناء على المقارنة. القيم المقبولة هي False وTrue. الإعداد الافتراضي هو False. اختياري
ScenarioId GUID الذي يشير إلى نظام نقطة مخصص. اختياري

فيما يلي مثال JSON الذي يحتوي على معلمات تقييم النطق:

{
  "ReferenceText": "Good morning.",
  "GradingSystem": "HundredMark",
  "Granularity": "FullText",
  "Dimension": "Comprehensive"
}

يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء معلمات تقييم النطق في العنوان Pronunciation-Assessment:

var pronAssessmentParamsJson = $"{{\"ReferenceText\":\"Good morning.\",\"GradingSystem\":\"HundredMark\",\"Granularity\":\"FullText\",\"Dimension\":\"Comprehensive\"}}";
var pronAssessmentParamsBytes = Encoding.UTF8.GetBytes(pronAssessmentParamsJson);
var pronAssessmentHeader = Convert.ToBase64String(pronAssessmentParamsBytes);

نوصي بشدة بتحميل البث (نقل مقطعي) أثناء نشر البيانات الصوتية، مما قد يقلل بشكل كبير من زمن الانتقال. لمعرفة كيفية تمكين الدفق، راجع نموذج التعليمات البرمجية بلغات البرمجة المختلفة.

إشعار

لمزيد من المعلومات، راجع تقييم النطق.

نموذج الطلب

يتضمن النموذج التالي اسم المضيف والرؤوس المطلوبة. من المهم ملاحظة أن الخدمة تتوقع أيضا بيانات صوتية، وهي غير مضمنة في هذه العينة. كما ذكرنا سابقًا، يوصى بالتقسيم ولكن ليس مطلوبًا.

POST speech/recognition/conversation/cognitiveservices/v1?language=en-US&format=detailed HTTP/1.1
Accept: application/json;text/xml
Content-Type: audio/wav; codecs=audio/pcm; samplerate=16000
Ocp-Apim-Subscription-Key: YOUR_RESOURCE_KEY
Host: westus.stt.speech.microsoft.com
Transfer-Encoding: chunked
Expect: 100-continue

لتمكين تقييم النطق، يمكنك إضافة العنوان التالي. لمعرفة كيفية إنشاء هذا العنوان، راجع معلمات تقييم النطق.

Pronunciation-Assessment: eyJSZWZlcm...

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

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

رمز حالة HTTP ‏‏الوصف الأسباب الممكنة
100 متابعة يتم قبول الطلب الأولي. تابع مع إرسال بقية البيانات. (يتم استخدام هذه التعليمة البرمجية مع النقل المجزئ.)
200 موافق الطلب ناجح. نص الاستجابة هو كائن JSON.
400 طلب غير صالح لم يتم توفير رمز اللغة أو اللغة غير معتمدة أو الملف الصوتي غير صالح (على سبيل المثال).
401 غير مصرح به مفتاح المورد أو رمز التخويل غير صالح في المنطقة المحددة، أو نقطة نهاية غير صالحة.
403 محظور مفتاح مورد أو رمز التخويل مفقود.

نماذج الاستجابات

فيما يلي استجابة نموذجية للتعرف simple :

{
  "RecognitionStatus": "Success",
  "DisplayText": "Remind me to buy 5 pencils.",
  "Offset": "1236645672289",
  "Duration": "1236645672289"
}

فيما يلي استجابة نموذجية للتعرف detailed :

{
  "RecognitionStatus": "Success",
  "Offset": "1236645672289",
  "Duration": "1236645672289",
  "NBest": [
    {
      "Confidence": 0.9052885,
      "Display": "What's the weather like?",
      "ITN": "what's the weather like",
      "Lexical": "what's the weather like",
      "MaskedITN": "what's the weather like"
    },
    {
      "Confidence": 0.92459863,
      "Display": "what is the weather like",
      "ITN": "what is the weather like",
      "Lexical": "what is the weather like",
      "MaskedITN": "what is the weather like"
    }
  ]
}

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

{
  "RecognitionStatus": "Success",
  "Offset": "400000",
  "Duration": "11000000",
  "NBest": [
      {
        "Confidence" : "0.87",
        "Lexical" : "good morning",
        "ITN" : "good morning",
        "MaskedITN" : "good morning",
        "Display" : "Good morning.",
        "PronScore" : 84.4,
        "AccuracyScore" : 100.0,
        "FluencyScore" : 74.0,
        "CompletenessScore" : 100.0,
        "Words": [
            {
              "Word" : "Good",
              "AccuracyScore" : 100.0,
              "ErrorType" : "None",
              "Offset" : 500000,
              "Duration" : 2700000
            },
            {
              "Word" : "morning",
              "AccuracyScore" : 100.0,
              "ErrorType" : "None",
              "Offset" : 5300000,
              "Duration" : 900000
            }
        ]
      }
  ]
}

خصائص الاستجابة

يتم توفير النتائج ك JSON. يتضمن التنسيق simple حقول المستوى الأعلى التالية:

الخاصية ‏‏الوصف
RecognitionStatus الحالة، مثل Success للتعرف الناجح. انظر الجدول التالي.
DisplayText النص الذي تم التعرف عليه بعد الكتابة بالأحرف الكبيرة وعلامات الترقيم وتطبيع النص العكسي وإخفاء الألفاظ النابية. تقديم فقط عن النجاح. تطبيع النص العكسي هو تحويل النص المنطوق إلى أشكال أقصر، مثل 200 لـ "200" أو "الدكتور سميث" لـ"الطبيب سميث."
Offset الوقت (بوحدات 100 نانو ثانية) الذي يبدأ فيه الكلام المعترف به في دفق الصوت.
Duration المدة (بوحدات 100 نانو ثانية) للكلام المعترف به في دفق الصوت.

قد يحتوي الحقل RecognitionStatus على هذه القيم:

‏الحالة ‏‏الوصف
Success كان الاعتراف ناجحًا، والحقل DisplayText موجود.
NoMatch تم الكشف عن الكلام في دفق الصوت، ولكن لم تتم مطابقة أي كلمات من اللغة الهدف. تعني هذه الحالة عادة أن لغة التعرف تختلف عن اللغة التي يتحدثها المستخدم.
InitialSilenceTimeout احتوى بداية دفق الصوت على الصمت فقط، وتوقفت مهلة الخدمة في أثناء انتظار الكلام.
BabbleTimeout احتوى بداية دفق الصوت على ضوضاء فقط، وقد انتهت مهلة الخدمة أثناء انتظار الكلام.
Error واجهت خدمة التعرف خطأ داخليا وتعذرت المتابعة. حاول مرة أخرى إذا كان ذلك ممكنًا.

إشعار

إذا كان الصوت يتكون فقط من الألفاظ النابية، وتم تعيين معلمة الاستعلام profanity إلى remove، فلن ترجع الخدمة نتيجة الكلام.

detailed يتضمن التنسيق المزيد من أشكال النتائج التي تم التعرف عليها. عند استخدام التنسيق detailed، يتم توفير DisplayText لكل Display نتيجة في القائمة NBest.

يمكن أن يتضمن الكائن في القائمة NBest ما يلي:

الخاصية ‏‏الوصف
Confidence درجة ثقة الإدخال، من 0.0 (بدون ثقة) إلى 1.0 (الثقة الكاملة).
Lexical الشكل المعجمي للنص المتعرف عليه: الكلمات الفعلية التي تم التعرف عليها.
ITN يتم تطبيق تسوية النص العكسي (ITN) أو الشكل المتعارف عليه للنص الذي تم التعرف عليه، مع أرقام الهواتف والأرقام والاختصارات ("الطبيب سميث" إلى "dr smith")، والتحولات الأخرى المطبقة.
MaskedITN نموذج ITN مع تطبيق إخفاء الألفاظ النابية، إذا طلب ذلك.
Display نموذج العرض للنص الذي تم التعرف عليه، مع إضافة علامات الترقيم والأحرف الكبيرة. هذه المعلمة هي نفسها التي توفر DisplayText عند تعيين التنسيق إلى simple.
AccuracyScore دقة نطق الكلام. تشير الدقة إلى مدى تطابق الصوتيات مع نطق المتحدث الأصلي. يتم تجميع درجة الدقة في مستويات الكلمة والنص الكامل من درجة الدقة على مستوى الهاتف.
FluencyScore الطلاقة من الكلام المقدمة. تشير الطلاقة إلى مدى تطابق الكلام مع استخدام المتحدث الأصلي للفواصل الصامتة بين الكلمات.
CompletenessScore اكتمال الكلام، يتم تحديده عن طريق حساب نسبة الكلمات الواضحة إلى إدخال النص المرجعي.
PronScore النتيجة الإجمالية التي تشير إلى جودة النطق للكلام المقدم. يتم تجميع هذه النتيجة من AccuracyScore وFluencyScore وCompletenessScore بوزن.
ErrorType القيمة التي تشير إلى ما إذا كان يتم حذف كلمة أو إدراجها أو نطقها بشكل سيئ، مقارنة بـReferenceText. القيم المحتملة هي None (بمعنى عدم وجود خطأ في هذه الكلمة) وOmission وInsertion وMispronunciation.

نقل مقسم

يمكن أن يساعد النقل المقسم (Transfer-Encoding: chunked) في تقليل زمن انتقال التعرف. يسمح لخدمة الكلام بالبدء في معالجة الملف الصوتي أثناء إرساله. لا توفر واجهة برمجة تطبيقات REST للصوت القصير نتائج جزئية أو مؤقتة.

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

var request = (HttpWebRequest)HttpWebRequest.Create(requestUri);
request.SendChunked = true;
request.Accept = @"application/json;text/xml";
request.Method = "POST";
request.ProtocolVersion = HttpVersion.Version11;
request.Host = host;
request.ContentType = @"audio/wav; codecs=audio/pcm; samplerate=16000";
request.Headers["Ocp-Apim-Subscription-Key"] = "YOUR_RESOURCE_KEY";
request.AllowWriteStreamBuffering = false;

using (var fs = new FileStream(audioFile, FileMode.Open, FileAccess.Read))
{
    // Open a request stream and write 1,024-byte chunks in the stream one at a time.
    byte[] buffer = null;
    int bytesRead = 0;
    using (var requestStream = request.GetRequestStream())
    {
        // Read 1,024 raw bytes from the input audio file.
        buffer = new Byte[checked((uint)Math.Min(1024, (int)fs.Length))];
        while ((bytesRead = fs.Read(buffer, 0, buffer.Length)) != 0)
        {
            requestStream.Write(buffer, 0, bytesRead);
        }

        requestStream.Flush();
    }
}

المصادقة

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

عنوان التخويل المدعم الكلام إلى النص نص إلى كلام
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...

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