استكشاف أخطاء "حزمة تطوير البرامج الخاصة بالكلام" وإصلاحها
توفر هذه المقالة معلومات لمساعدتك في حل المشكلات التي قد تواجهها عند استخدام "حزمة 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 $OAuthTokencURL
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. $RecoResponsecURL
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.يستخدم الصوت تنسيق برنامج ترميز غير مدعوم ، مما يؤدي إلى معاملة بيانات الصوت على أنها صامتة.