Я пытаюсь создать голосовую игру с помощью 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