Azure SDK SpeechSDK Невозможно прочитать свойство 'SpeechConfig' из неопределенного - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь создать голосовую игру с помощью Phaser 3 и SDK. У меня оба работают по отдельности, но теперь, когда я пытаюсь объединить их, я получаю: Не могу прочитать свойство 'SpeechConfig' из неопределенного.

мой журнал SDK не определен, и я получаю: звуковой контекст не найден, нет аудио выход. ReferenceError: soundContext не определен

моя настройка:

"devDependencies": {
    "@types/socket.io": "^1.4.38",
    "@types/socket.io-client": "^1.4.32",
    "babel-core": "^6.26.0",
    "babel-eslint": "^8.2.1",
    "babel-loader": "^7.1.2",
    "babel-plugin-transform-object-rest-spread": "^6.26.0",
    "babel-polyfill": "^6.26.0",
    "babel-preset-env": "^1.6.1",
    "browser-sync": "^2.26.3",
    "browser-sync-webpack-plugin": "^2.0.1",
    "clean-webpack-plugin": "^0.1.18",
    "concurrently": "^4.0.1",
    "copy-webpack-plugin": "^4.4.1",
    "eslint": "^4.19.1",
    "eslint-config-prettier": "^3.1.0",
    "eslint-config-standard": "^10.2.1",
    "eslint-plugin-import": "^2.8.0",
    "eslint-plugin-node": "^6.0.0",
    "eslint-plugin-prettier": "^3.1.2",
    "eslint-plugin-promise": "^3.6.0",
    "eslint-plugin-standard": "^3.0.1",
    "expose-loader": "^0.7.4",
    "file-loader": "^2.0.0",
    "html-webpack-plugin": "^2.30.1",
    "nodemon": "^1.18.4",
    "webpack": "^3.11.0",
    "workbox-webpack-plugin": "^3.6.2"
  },
  "dependencies": {
    "asn1.js-rfc2560": "^5.0.1",
    "asn1js": "^2.0.26",
    "express": "^4.16.4",
    "idiom.js": "^1.0.0",
    "https-proxy-agent": "^3.0.0",
    "microsoft-cognitiveservices-speech-sdk": "^1.10.1",
    "phaser": "^3.15.1",
    "prettier": "^2.0.2",
    "socket.io": "^2.1.1",
    "socket.io-client": "^2.1.1",
    "webfontloader": "^1.6.28"

моя функция:

function test(){
  var SDK =  window.SpeechSDK;
  console.log("SpeechSDK initialized", SDK); // this results in undefined
  try {
  AudioContext = window.AudioContext // our preferred impl
      || window.webkitAudioContext   // fallback, mostly for Safari
      || false;                      // could not find.
  if (AudioContext) {
      soundContext = new AudioContext();
    console.log("AudioContext", AudioContext);
  } else {
      alert("Audio context not supported");
  }
  }
  catch (e) {
   console.log("no sound context found, no audio output. " + e);
  }


  var speechConfig = 
    SpeechSDK.SpeechConfig.fromSubscription("myKey", 
     "westus");

  speechConfig.speechRecognitionLanguage = "en-US";
  console.log("speechConfig", speechConfig);      

  audioConfig  = SpeechSDK.AudioConfig.fromDefaultMicrophoneInput();
  recognizer = new SpeechSDK.SpeechRecognizer(speechConfig, 
     audioConfig);
  recognizer.recognizeOnceAsync(
  function (result) {
    console.log("result", result); 
    recognizer.close();
    recognizer = undefined;
  },
  function (err) {
    console.log(err);
    recognizer.close();
    recognizer = undefined;
  });
}

Я работаю с узлом, как вы видите, и я не уверен, что я импортировать вещи правильно тоже. Если я пытаюсь использовать require, он не может найти модуль независимо от того, как я ввожу путь ... Не уверен, что импортировать и что импортировать из какого модуля. Любая помощь или понимание будут великолепны.

Я использую готовую структуру на git хабе для моего phaser-socket-io: phaser3-ES6-socketio-scaffold-master от:

https://github.com/zero3william/phaser3-ES6-socketio-scaffold

...