استكشاف أخطاء "حزمة تطوير البرامج الخاصة بالكلام" وإصلاحها

توفر هذه المقالة معلومات لمساعدتك في حل المشكلات التي قد تواجهها عند استخدام "حزمة SDK للكلام".

خطأ: فشل ترقية WebSocket بسبب خطأ مصادقة (403)

قد يكون لديك نقطة نهاية خاطئة لمنطقتك أو خدمتك. تحقق من عنوان URI للتأكد من صحته.

أيضا، قد تكون هناك مشكلة في مفتاح الاشتراك أو رمز التفويض. لمزيد من المعلومات، راجع القسم التالي.

خطأ: HTTP 403 ممنوع أو HTTP 401 غير مصرح به

غالبا ما يحدث هذا الخطأ بسبب مشكلات المصادقة. يتم رفض طلبات الاتصال بدون رأس صالح Ocp-Apim-Subscription-Key أو بحالة 403 أو Authorization 401.

  • إذا كنت تستخدم مفتاح اشتراك للمصادقة، فقد يظهر لك الخطأ بسبب:

    • مفتاح الاشتراك مفقود أو غير صالح
    • لقد تجاوزت حصة استخدام اشتراكك
  • إذا كنت تستخدم رمزا مميزا للتخويل للمصادقة، فقد يظهر لك الخطأ بسبب:

    • الرمز المميز للتفويض غير صالح
    • انتهت صلاحية الرمز المميز للتفويض

التحقق من صحة مفتاح الاشتراك

يمكنك التحقق من أن لديك مفتاح اشتراك صالح عن طريق تشغيل أحد الأوامر التالية.

ملاحظة

استبدل YOUR_SUBSCRIPTION_KEY مفتاح الاشتراك الخاص بك والمنطقة المرتبطة به وبمفتاح YOUR_REGION الاشتراك به.

  • PowerShell

    $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://YOUR_REGION.api.cognitive.microsoft.com/sts/v1.0/issueToken -Headers $FetchTokenHeader
    $OAuthToken
    
  • cURL

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

إذا أدخلت مفتاح اشتراك صالحا، فسيرجع الأمر رمزا مميزا للتفويض، وإلا سيتم إرجاع خطأ.

التحقق من صحة رمز مميز للتفويض

إذا كنت تستخدم رمزا مميزا للتخويل للمصادقة، فقم بتشغيل أحد الأوامر التالية للتحقق من أن الرمز المميز للتخويل لا يزال صالحا. الرموز صالحة لمدة 10 دقائق.

ملاحظة

استبدل YOUR_AUDIO_FILE بالمسار إلى الملف الصوتي المسجل مسبقا. استبدل YOUR_ACCESS_TOKEN بالرمز المميز للتفويض الذي تم إرجاعه في الخطوة السابقة. استبدل YOUR_REGION بالمنطقة الصحيحة.

  • PowerShell

    $SpeechServiceURI =
    'https://YOUR_REGION.stt.speech.microsoft.com/speech/recognition/interactive/cognitiveservices/v1?language=en-US'
    
    # $OAuthToken is the authorization token returned by the token service.
    $RecoRequestHeader = @{
      'Authorization' = 'Bearer '+ $OAuthToken
      'Transfer-Encoding' = 'chunked'
      'Content-type' = 'audio/wav; codec=audio/pcm; samplerate=16000'
    }
    
    # Read audio into byte array.
    $audioBytes = [System.IO.File]::ReadAllBytes("YOUR_AUDIO_FILE")
    
    $RecoResponse = Invoke-RestMethod -Method POST -Uri $SpeechServiceURI -Headers $RecoRequestHeader -Body $audioBytes
    
    # Show the result.
    $RecoResponse
    
  • cURL

    curl -v -X POST "https://YOUR_REGION.stt.speech.microsoft.com/speech/recognition/interactive/cognitiveservices/v1?language=en-US" -H "Authorization: Bearer YOUR_ACCESS_TOKEN" -H "Transfer-Encoding: chunked" -H "Content-type: audio/wav; codec=audio/pcm; samplerate=16000" --data-binary @YOUR_AUDIO_FILE
    

إذا قمت بإدخال رمز مميز صالح للتفويض، فسيقوم الأمر بإرجاع النسخ لملف الصوت، وإلا سيتم إرجاع خطأ.


خطأ: HTTP 400 طلب غير صحيح

يحدث هذا الخطأ عادة عندما يحتوي نص الطلب على بيانات صوتية غير صالحة. يتم دعم تنسيق WAV فقط. تحقق أيضا من رؤوس الطلبات للتأكد من تحديد القيم المناسبة ل Content-Type و Content-Length.

خطأ: مهلة طلب HTTP 408

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

"RecognitionStatus" في الرد هو "InitialSilenceTimeout"

عادة ما تحدث هذه المشكلة بسبب البيانات الصوتية. قد ترى هذا الخطأ بسبب:

  • هناك امتداد طويل من الصمت في بداية الصوت. في هذه الحالة ، توقف الخدمة التعرف بعد بضع ثوان وتعود InitialSilenceTimeout.

  • يستخدم الصوت تنسيق برنامج ترميز غير مدعوم ، مما يؤدي إلى معاملة بيانات الصوت على أنها صامتة.

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