עזרה - שגיאה באימות מול Microsoft Azure (STT)
-
אני מנסה להשתמש בשירותי זיהוי הדיבור (STT) של מיקרוסופט בNode.js לצורך זיהוי דיבור בעברית בקבצי שמע (לא בסטרים חי אלא בקבצים קצרים ששמורים בדיסק).
התקנתי את הSDK המתאים ופעלתי על פי ההוראות התחלה מהירה:
יצרתי פרויקט זיהוי דיבור בAzure והעתקתי את המפתח והקוד איזור המסומנים:
אל דוגמת הקוד בקישור הנ"ל:const fs = require("fs"); const sdk = require("microsoft-cognitiveservices-speech-sdk"); const speechConfig = sdk.SpeechConfig.fromSubscription("af191c50819349e1955e03934f*****", "eastus"); speechConfig.speechRecognitionLanguage = "he-IL"; function fromFile() { let audioConfig = sdk.AudioConfig.fromWavFileInput(fs.readFileSync("YourAudioFile.wav")); let speechRecognizer = new sdk.SpeechRecognizer(speechConfig, audioConfig); speechRecognizer.recognizeOnceAsync(result => { switch (result.reason) { case sdk.ResultReason.RecognizedSpeech: console.log(`RECOGNIZED: Text=${result.text}`); break; case sdk.ResultReason.NoMatch: console.log("NOMATCH: Speech could not be recognized."); break; case sdk.ResultReason.Canceled: const cancellation = sdk.CancellationDetails.fromResult(result); console.log(`CANCELED: Reason=${cancellation.reason}`); if (cancellation.reason == sdk.CancellationReason.Error) { console.log(`CANCELED: ErrorCode=${cancellation.ErrorCode}`); console.log(`CANCELED: ErrorDetails=${cancellation.errorDetails}`); console.log("CANCELED: Did you set the speech resource key and region values?"); } break; } speechRecognizer.close(); }); } fromFile();
וכמובן יצרתי קובץ
YourAudioFile.wav
בתקיה של הסקריפט.
אלא שכאשר אני מריץ אותו, מתקבלת השגיאה הבאה (לא הצלחתי להעתיק כטקסט):
שמראה כאילו לא נשלח הקונפיג הנדרש לאימות למרות שלכאורה עשיתי בדיוק לפי ההוראות.
אשמח לשמוע במה טעיתי, אני פשוט אובד עיצות...
תודה! -
@צדיק-תמים לפי הנראה משורת קוד זה:
https://github.com/microsoft/cognitive-services-speech-sdk-js/blob/6c070c429f44a9213d562a794886da768590ada4/src/common.browser/CertChecks.ts#L363const enableOCSP: boolean = (typeof process !== "undefined" && process.env.NODE_TLS_REJECT_UNAUTHORIZED !== "0" && process.env.SPEECH_CONDUCT_OCSP_CHECK !== "0") && options.secureEndpoint;
אמור להיות אפשרי להשבית את הבדיקה המיותרת על ידי הגדרת משתנה סביבה של:
NODE_TLS_REJECT_UNAUTHORIZED=0
או
SPEECH_CONDUCT_OCSP_CHECK=0