עזרה - שגיאה באימות מול 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
בתקיה של הסקריפט.
אלא שכאשר אני מריץ אותו, מתקבלת השגיאה הבאה (לא הצלחתי להעתיק כטקסט):
שמראה כאילו לא נשלח הקונפיג הנדרש לאימות למרות שלכאורה עשיתי בדיוק לפי ההוראות.
אשמח לשמוע במה טעיתי, אני פשוט אובד עיצות...
תודה! -
אני מנסה להשתמש בשירותי זיהוי הדיבור (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
בתקיה של הסקריפט.
אלא שכאשר אני מריץ אותו, מתקבלת השגיאה הבאה (לא הצלחתי להעתיק כטקסט):
שמראה כאילו לא נשלח הקונפיג הנדרש לאימות למרות שלכאורה עשיתי בדיוק לפי ההוראות.
אשמח לשמוע במה טעיתי, אני פשוט אובד עיצות...
תודה!@צדיק-תמים האם הורדת את נטפרי מהמשוואה? כי אם לא, יש סיכוי גדול שזה קשור להם. לפי גיגול מהיר שעשיתי אני רואה ש-
AuthorityInfoAccess
זה שדה בתעודת האבטחה. -
@צדיק-תמים האם הורדת את נטפרי מהמשוואה? כי אם לא, יש סיכוי גדול שזה קשור להם. לפי גיגול מהיר שעשיתי אני רואה ש-
AuthorityInfoAccess
זה שדה בתעודת האבטחה. -
@yossiz עשיתי הקלטות תעבורה ולא הופיע שגיאה/חסימה. זה לא אמור לקחת תעודות מאיפה שכל הדברים שרצים בnode לוקחים?
@צדיק-תמים הקלטת תעבורה בלי שגיאה עדיין לא מורידה את נטפרי מהמשוואה. הבעיה היא שנטפרי מגישים לך תעודה משלהם שזה לא התעודה המקורית. הטקסט של השגיאה אומרת שחסר שם איזה שדה שהקוד ציפה לקבל.
-
@צדיק-תמים לפי הנראה משורת קוד זה:
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
-
@צדיק-תמים לפי הנראה משורת קוד זה:
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
-
@yossiz
אלוף אמיתי!
עוד לא הספקתי להעלות את הקוד לשרת כדי לבדוק, וכבר הבאת פתרון... אכן עם הדגל הזה זה עובד חלק!