speaker-calibration 2.2.154 → 2.2.155
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +1 -1
- package/package.json +1 -1
- package/src/server/PythonServerAPI.js +2 -2
package/dist/main.js
CHANGED
|
@@ -469,7 +469,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var qrco
|
|
|
469
469
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
470
470
|
|
|
471
471
|
"use strict";
|
|
472
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! axios */ \"./node_modules/axios/lib/axios.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils */ \"./src/utils.js\");\n\n\n/**\n *\n */\nclass PythonServerAPI {\n // static PYTHON_SERVER_URL = 'https://easyeyes-python-flask-server.herokuapp.com';\n\n static TEST_SERVER_URL = 'http://127.0.0.1:5000';\n static PYTHON_SERVER_URL ='http://127.0.0.1:5000';\n\n /** @private */\n MAX_RETRY_COUNT = 3;\n /** @private */\n RETRY_DELAY_MS = 1000;\n /**\n * @param data- -\n * g = inverted impulse response, when convolved with the impulse\n * reponse, they cancel out.\n * @param data.payload\n * @param data.sampleRate\n * @param data.P\n * @param data-.payload\n * @param data-.sampleRate\n * @param data-.P\n * @returns\n * @example\n */\n getImpulseResponse = async ({\n mls, \n sampleRate, \n numPeriods,\n sig,\n fs2,\n L_new_n,\n dL_n\n }) => {\n const task = 'impulse-response';\n let res = null;\n\n const data = JSON.stringify({\n task,\n 'sample-rate': sampleRate,\n mls,\n numPeriods,\n sig,\n fs2,\n L_new_n,\n dL_n\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n return res.data[task];\n };\n\n getAutocorrelation = async ({\n mls, \n payload, \n sampleRate, \n numPeriods\n }) => {\n const task = 'autocorrelation';\n let res = null;\n\n const data = JSON.stringify({\n task,\n payload,\n 'sample-rate': sampleRate,\n mls,\n numPeriods,\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n return res.data[task];\n };\n\n getConvolution = async ({\n mls, \n inverse_response, \n inverse_response_no_bandpass,\n attenuatorGain_dB,\n mls_amplitude\n }) => {\n const task = 'convolution';\n let res = null;\n\n const data = JSON.stringify({\n task,\n mls, \n inverse_response, \n inverse_response_no_bandpass,\n attenuatorGain_dB,\n mls_amplitude\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n return res.data[task];\n };\n\n getMLS = async ({length,amplitude,calibrateSoundBurstMLSVersions}) => {\n const task = 'mls';\n let res = null;\n\n const data = JSON.stringify({\n task,\n length: length,\n amplitude: amplitude,\n calibrateSoundBurstMLSVersions: calibrateSoundBurstMLSVersions,\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n\n return res.data[task];\n };\n\n getMemory = async () => {\n let res;\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/memory`,\n headers: {\n 'Content-Type': 'application/json',\n }\n })\n .then(response => {\n console.log(\"memory used:\", Math.round(response.data['memory']), \"mb\");\n res = response.data['memory'];\n })\n .catch(error => {\n throw error;\n });\n return res;\n };\n\n\n checkMemory = async () => {\n console.log(\"wait for memory under 500 mb to continue calibration\");\n await this.getMemory();\n // let memory = await this.getMemory();\n // while (memory >= 500) {\n // console.log(\"sleep 30s\");\n // await sleep(30);\n // memory = await this.getMemory();\n // }\n \n };\n\n\n getMLSWithRetry = async ({length,amplitude,calibrateSoundBurstMLSVersions}) => {\n let retryCount = 0;\n let response = null;\n\n while (retryCount < this.MAX_RETRY_COUNT) {\n try {\n response = await this.getMLS({length,amplitude, calibrateSoundBurstMLSVersions});\n // If the request is successful, break out of the loop\n break;\n } catch (error) {\n console.error(`Error occurred. Retrying... (${retryCount + 1}/${this.MAX_RETRY_COUNT})`);\n retryCount++;\n await new Promise(resolve => setTimeout(resolve, this.RETRY_DELAY_MS));\n }\n }\n\n if (response) {\n return response;\n } else {\n throw new Error(`Failed to get MLS after ${this.MAX_RETRY_COUNT} attempts.`);\n }\n };\n\n getPSD = async ({unconv_rec, conv_rec, sampleRate}) => {\n const task = 'psd';\n let res = null;\n\n const data = JSON.stringify({\n task,\n unconv_rec,\n conv_rec,\n sampleRate,\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n return res.data[task];\n };\n\n getBackgroundNoisePSD = async ({background_rec, sampleRate}) => {\n const task = 'background-psd';\n let res = null;\n\n const data = JSON.stringify({\n task,\n background_rec,\n sampleRate,\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n return res.data[task];\n };\n\n getBackgroundNoisePSDWithRetry = async ({background_rec, sampleRate}) => {\n let retryCount = 0;\n let response = null;\n\n while (retryCount < this.MAX_RETRY_COUNT) {\n try {\n response = await this.getBackgroundNoisePSD({background_rec, sampleRate});\n // If the request is successful, break out of the loop\n break;\n } catch (error) {\n console.error(`Error occurred. Retrying... (${retryCount + 1}/${this.MAX_RETRY_COUNT})`);\n retryCount++;\n await new Promise(resolve => setTimeout(resolve, this.RETRY_DELAY_MS));\n }\n }\n\n if (response) {\n return response;\n } else {\n throw new Error(`Failed to get PSD after ${this.MAX_RETRY_COUNT} attempts.`);\n }\n };\n\n getSubtractedPSD = async (rec, knownGains, knownFrequencies, sampleRate) => {\n const task = 'subtracted-psd';\n let res = null;\n\n const data = JSON.stringify({\n task,\n rec,\n knownGains,\n knownFrequencies,\n sampleRate,\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n return res.data[task];\n };\n\n getSubtractedPSDWithRetry = async (rec, knownGains, knownFrequencies, sampleRate) => {\n let retryCount = 0;\n let response = null;\n\n while (retryCount < this.MAX_RETRY_COUNT) {\n try {\n response = await this.getSubtractedPSD(rec, knownGains, knownFrequencies, sampleRate);\n // If the request is successful, break out of the loop\n break;\n } catch (error) {\n console.error(`Error occurred. Retrying... (${retryCount + 1}/${this.MAX_RETRY_COUNT})`);\n retryCount++;\n await new Promise(resolve => setTimeout(resolve, this.RETRY_DELAY_MS));\n }\n }\n\n if (response) {\n return response;\n } else {\n throw new Error(`Failed to get PSD after ${this.MAX_RETRY_COUNT} attempts.`);\n }\n };\n\n getPSDWithRetry = async ({unconv_rec, conv_rec, sampleRate}) => {\n let retryCount = 0;\n let response = null;\n\n while (retryCount < this.MAX_RETRY_COUNT) {\n try {\n response = await this.getPSD({unconv_rec, conv_rec, sampleRate});\n // If the request is successful, break out of the loop\n break;\n } catch (error) {\n console.error(`Error occurred. Retrying... (${retryCount + 1}/${this.MAX_RETRY_COUNT})`);\n retryCount++;\n await new Promise(resolve => setTimeout(resolve, this.RETRY_DELAY_MS));\n }\n }\n\n if (response) {\n return response;\n } else {\n throw new Error(`Failed to get PSD after ${this.MAX_RETRY_COUNT} attempts.`);\n }\n };\n\n getComponentInverseImpulseResponse = async ({\n payload,\n mls,\n lowHz,\n highHz,\n componentIRGains,\n iirLength,\n componentIRFreqs,\n sampleRate,\n mlsAmplitude,\n irLength,\n calibrateSoundSmoothOctaves,\n calibrateSoundBurstFilteredExtraDb\n }) => {\n const task = 'component-inverse-impulse-response';\n let res = null;\n\n console.log({payload});\n\n const data = JSON.stringify({\n task,\n payload,\n mls,\n lowHz,\n highHz,\n iirLength,\n componentIRGains,\n componentIRFreqs,\n sampleRate,\n mlsAmplitude,\n irLength,\n calibrateSoundSmoothOctaves,\n calibrateSoundBurstFilteredExtraDb\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n\n return res.data[task];\n };\n getSystemInverseImpulseResponse = async ({\n payload,\n mls,\n lowHz,\n highHz,\n iirLength,\n sampleRate,\n mlsAmplitude,\n calibrateSoundBurstFilteredExtraDb\n }) => {\n const task = 'system-inverse-impulse-response';\n let res = null;\n\n console.log({payload});\n\n const data = JSON.stringify({\n task,\n payload,\n mls,\n lowHz,\n iirLength,\n highHz,\n sampleRate,\n mlsAmplitude,\n calibrateSoundBurstFilteredExtraDb\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n\n return res.data[task];\n };\n\n getMLSPSD = async ({mls, sampleRate}) => {\n const task = 'mls-psd';\n let res = null;\n\n const data = JSON.stringify({\n task,\n mls,\n sampleRate,\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n\n return res.data[task];\n };\n\n getMLSPSDWithRetry = async ({mls, sampleRate}) => {\n let retryCount = 0;\n let response = null;\n\n while (retryCount < this.MAX_RETRY_COUNT) {\n try {\n response = await this.getMLSPSD({mls, sampleRate});\n // If the request is successful, break out of the loop\n break;\n } catch (error) {\n console.error(`Error occurred. Retrying... (${retryCount + 1}/${this.MAX_RETRY_COUNT})`);\n retryCount++;\n await new Promise(resolve => setTimeout(resolve, this.RETRY_DELAY_MS));\n }\n }\n\n if (response) {\n return response;\n } else {\n throw new Error(\n `Failed to get inverse impulse response after ${this.MAX_RETRY_COUNT} attempts.`\n );\n }\n };\n\n getComponentInverseImpulseResponseWithRetry = async ({\n payload,\n mls,\n lowHz,\n highHz,\n componentIRGains,\n iirLength,\n componentIRFreqs,\n sampleRate,\n mlsAmplitude,\n irLength,\n calibrateSoundSmoothOctaves,\n calibrateSoundBurstFilteredExtraDb\n }) => {\n let retryCount = 0;\n let response = null;\n\n while (retryCount < this.MAX_RETRY_COUNT) {\n try {\n response = await this.getComponentInverseImpulseResponse({\n payload,\n mls,\n lowHz,\n highHz,\n componentIRGains,\n iirLength,\n componentIRFreqs,\n sampleRate,\n mlsAmplitude,\n irLength,\n calibrateSoundSmoothOctaves,\n calibrateSoundBurstFilteredExtraDb\n });\n // If the request is successful, break out of the loop\n break;\n } catch (error) {\n console.error(`Error occurred. Retrying... (${retryCount + 1}/${this.MAX_RETRY_COUNT})`);\n retryCount++;\n await new Promise(resolve => setTimeout(resolve, this.RETRY_DELAY_MS));\n }\n }\n\n if (response) {\n return response;\n } else {\n throw new Error(\n `Failed to get inverse impulse response after ${this.MAX_RETRY_COUNT} attempts.`\n );\n }\n };\n\n getSystemInverseImpulseResponseWithRetry = async ({\n payload,\n mls,\n lowHz,\n highHz,\n iirLength,\n sampleRate,\n mlsAmplitude,\n calibrateSoundBurstFilteredExtraDb\n }) => {\n let retryCount = 0;\n let response = null;\n\n while (retryCount < this.MAX_RETRY_COUNT) {\n try {\n response = await this.getSystemInverseImpulseResponse({\n payload,\n mls,\n lowHz,\n highHz,\n iirLength,\n sampleRate,\n mlsAmplitude,\n calibrateSoundBurstFilteredExtraDb\n });\n // If the request is successful, break out of the loop\n break;\n } catch (error) {\n console.error(`Error occurred. Retrying... (${retryCount + 1}/${this.MAX_RETRY_COUNT})`);\n retryCount++;\n await new Promise(resolve => setTimeout(resolve, this.RETRY_DELAY_MS));\n }\n }\n\n if (response) {\n return response;\n } else {\n throw new Error(\n `Failed to get inverse impulse response after ${this.MAX_RETRY_COUNT} attempts.`\n );\n }\n };\n\n getVolumeCalibration = async ({payload, sampleRate, lCalib}) => {\n const task = 'volume';\n let res = null;\n\n console.log({payload});\n\n const data = JSON.stringify({\n task,\n payload,\n 'sample-rate': sampleRate,\n lCalib,\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n\n return res.data[task];\n };\n\n getVolumeCalibrationParameters = async ({\n inDBValues,\n outDBSPLValues,\n lCalib,\n componentGainDBSPL,\n }) => {\n const task = 'volume-parameters';\n let res = null;\n\n const data = JSON.stringify({\n task,\n inDBValues,\n outDBSPLValues,\n lCalib,\n componentGainDBSPL,\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL, //server\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n console.log(res.data[task]);\n })\n .catch(error => {\n throw error;\n });\n\n // console.log(res.data[task]);\n //below is an example of res.data[task]\n //{\n // R: 16.56981076554259,\n // RMSError: 1.9289162528535229\n // T: -47.79799120884434,\n // W: 61.0485247483732,\n // backgroundDBSPL: 43.88233142069752,\n // gainDBSPL: -128.24742161208985\n //}\n return res.data[task];\n };\n\n allHzPowerCheck = async ({\n payload, \n sampleRate, \n binDesiredSec,\n burstSec,\n repeats\n }) => {\n const task = 'all-hz-check';\n let res = null;\n\n const data = JSON.stringify({\n payload, \n sampleRate, \n binDesiredSec,\n burstSec,\n repeats\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL, //server\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n console.log(res.data[task]);\n })\n .catch(error => {\n throw error;\n });\n return res.data[task];\n };\n\n volumePowerCheck = async ({\n payload, \n sampleRate, \n preSec,\n Sec,\n binDesiredSec\n }) => {\n const task = 'volume-check';\n let res = null;\n\n const data = JSON.stringify({\n payload, \n sampleRate, \n preSec,\n Sec,\n binDesiredSec\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL, //server\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n console.log(res.data[task]);\n })\n .catch(error => {\n throw error;\n });\n return res.data[task];\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (PythonServerAPI);\n\n\n//# sourceURL=webpack://speakerCalibrator/./src/server/PythonServerAPI.js?");
|
|
472
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! axios */ \"./node_modules/axios/lib/axios.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils */ \"./src/utils.js\");\n\n\n/**\n *\n */\nclass PythonServerAPI {\n static PYTHON_SERVER_URL = 'https://easyeyes-python-flask-server.herokuapp.com';\n\n static TEST_SERVER_URL = 'http://127.0.0.1:5000';\n // static PYTHON_SERVER_URL ='http://127.0.0.1:5000';\n\n /** @private */\n MAX_RETRY_COUNT = 3;\n /** @private */\n RETRY_DELAY_MS = 1000;\n /**\n * @param data- -\n * g = inverted impulse response, when convolved with the impulse\n * reponse, they cancel out.\n * @param data.payload\n * @param data.sampleRate\n * @param data.P\n * @param data-.payload\n * @param data-.sampleRate\n * @param data-.P\n * @returns\n * @example\n */\n getImpulseResponse = async ({\n mls, \n sampleRate, \n numPeriods,\n sig,\n fs2,\n L_new_n,\n dL_n\n }) => {\n const task = 'impulse-response';\n let res = null;\n\n const data = JSON.stringify({\n task,\n 'sample-rate': sampleRate,\n mls,\n numPeriods,\n sig,\n fs2,\n L_new_n,\n dL_n\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n return res.data[task];\n };\n\n getAutocorrelation = async ({\n mls, \n payload, \n sampleRate, \n numPeriods\n }) => {\n const task = 'autocorrelation';\n let res = null;\n\n const data = JSON.stringify({\n task,\n payload,\n 'sample-rate': sampleRate,\n mls,\n numPeriods,\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n return res.data[task];\n };\n\n getConvolution = async ({\n mls, \n inverse_response, \n inverse_response_no_bandpass,\n attenuatorGain_dB,\n mls_amplitude\n }) => {\n const task = 'convolution';\n let res = null;\n\n const data = JSON.stringify({\n task,\n mls, \n inverse_response, \n inverse_response_no_bandpass,\n attenuatorGain_dB,\n mls_amplitude\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n return res.data[task];\n };\n\n getMLS = async ({length,amplitude,calibrateSoundBurstMLSVersions}) => {\n const task = 'mls';\n let res = null;\n\n const data = JSON.stringify({\n task,\n length: length,\n amplitude: amplitude,\n calibrateSoundBurstMLSVersions: calibrateSoundBurstMLSVersions,\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n\n return res.data[task];\n };\n\n getMemory = async () => {\n let res;\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/memory`,\n headers: {\n 'Content-Type': 'application/json',\n }\n })\n .then(response => {\n console.log(\"memory used:\", Math.round(response.data['memory']), \"mb\");\n res = response.data['memory'];\n })\n .catch(error => {\n throw error;\n });\n return res;\n };\n\n\n checkMemory = async () => {\n console.log(\"wait for memory under 500 mb to continue calibration\");\n await this.getMemory();\n // let memory = await this.getMemory();\n // while (memory >= 500) {\n // console.log(\"sleep 30s\");\n // await sleep(30);\n // memory = await this.getMemory();\n // }\n \n };\n\n\n getMLSWithRetry = async ({length,amplitude,calibrateSoundBurstMLSVersions}) => {\n let retryCount = 0;\n let response = null;\n\n while (retryCount < this.MAX_RETRY_COUNT) {\n try {\n response = await this.getMLS({length,amplitude, calibrateSoundBurstMLSVersions});\n // If the request is successful, break out of the loop\n break;\n } catch (error) {\n console.error(`Error occurred. Retrying... (${retryCount + 1}/${this.MAX_RETRY_COUNT})`);\n retryCount++;\n await new Promise(resolve => setTimeout(resolve, this.RETRY_DELAY_MS));\n }\n }\n\n if (response) {\n return response;\n } else {\n throw new Error(`Failed to get MLS after ${this.MAX_RETRY_COUNT} attempts.`);\n }\n };\n\n getPSD = async ({unconv_rec, conv_rec, sampleRate}) => {\n const task = 'psd';\n let res = null;\n\n const data = JSON.stringify({\n task,\n unconv_rec,\n conv_rec,\n sampleRate,\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n return res.data[task];\n };\n\n getBackgroundNoisePSD = async ({background_rec, sampleRate}) => {\n const task = 'background-psd';\n let res = null;\n\n const data = JSON.stringify({\n task,\n background_rec,\n sampleRate,\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n return res.data[task];\n };\n\n getBackgroundNoisePSDWithRetry = async ({background_rec, sampleRate}) => {\n let retryCount = 0;\n let response = null;\n\n while (retryCount < this.MAX_RETRY_COUNT) {\n try {\n response = await this.getBackgroundNoisePSD({background_rec, sampleRate});\n // If the request is successful, break out of the loop\n break;\n } catch (error) {\n console.error(`Error occurred. Retrying... (${retryCount + 1}/${this.MAX_RETRY_COUNT})`);\n retryCount++;\n await new Promise(resolve => setTimeout(resolve, this.RETRY_DELAY_MS));\n }\n }\n\n if (response) {\n return response;\n } else {\n throw new Error(`Failed to get PSD after ${this.MAX_RETRY_COUNT} attempts.`);\n }\n };\n\n getSubtractedPSD = async (rec, knownGains, knownFrequencies, sampleRate) => {\n const task = 'subtracted-psd';\n let res = null;\n\n const data = JSON.stringify({\n task,\n rec,\n knownGains,\n knownFrequencies,\n sampleRate,\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n return res.data[task];\n };\n\n getSubtractedPSDWithRetry = async (rec, knownGains, knownFrequencies, sampleRate) => {\n let retryCount = 0;\n let response = null;\n\n while (retryCount < this.MAX_RETRY_COUNT) {\n try {\n response = await this.getSubtractedPSD(rec, knownGains, knownFrequencies, sampleRate);\n // If the request is successful, break out of the loop\n break;\n } catch (error) {\n console.error(`Error occurred. Retrying... (${retryCount + 1}/${this.MAX_RETRY_COUNT})`);\n retryCount++;\n await new Promise(resolve => setTimeout(resolve, this.RETRY_DELAY_MS));\n }\n }\n\n if (response) {\n return response;\n } else {\n throw new Error(`Failed to get PSD after ${this.MAX_RETRY_COUNT} attempts.`);\n }\n };\n\n getPSDWithRetry = async ({unconv_rec, conv_rec, sampleRate}) => {\n let retryCount = 0;\n let response = null;\n\n while (retryCount < this.MAX_RETRY_COUNT) {\n try {\n response = await this.getPSD({unconv_rec, conv_rec, sampleRate});\n // If the request is successful, break out of the loop\n break;\n } catch (error) {\n console.error(`Error occurred. Retrying... (${retryCount + 1}/${this.MAX_RETRY_COUNT})`);\n retryCount++;\n await new Promise(resolve => setTimeout(resolve, this.RETRY_DELAY_MS));\n }\n }\n\n if (response) {\n return response;\n } else {\n throw new Error(`Failed to get PSD after ${this.MAX_RETRY_COUNT} attempts.`);\n }\n };\n\n getComponentInverseImpulseResponse = async ({\n payload,\n mls,\n lowHz,\n highHz,\n componentIRGains,\n iirLength,\n componentIRFreqs,\n sampleRate,\n mlsAmplitude,\n irLength,\n calibrateSoundSmoothOctaves,\n calibrateSoundBurstFilteredExtraDb\n }) => {\n const task = 'component-inverse-impulse-response';\n let res = null;\n\n console.log({payload});\n\n const data = JSON.stringify({\n task,\n payload,\n mls,\n lowHz,\n highHz,\n iirLength,\n componentIRGains,\n componentIRFreqs,\n sampleRate,\n mlsAmplitude,\n irLength,\n calibrateSoundSmoothOctaves,\n calibrateSoundBurstFilteredExtraDb\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n\n return res.data[task];\n };\n getSystemInverseImpulseResponse = async ({\n payload,\n mls,\n lowHz,\n highHz,\n iirLength,\n sampleRate,\n mlsAmplitude,\n calibrateSoundBurstFilteredExtraDb\n }) => {\n const task = 'system-inverse-impulse-response';\n let res = null;\n\n console.log({payload});\n\n const data = JSON.stringify({\n task,\n payload,\n mls,\n lowHz,\n iirLength,\n highHz,\n sampleRate,\n mlsAmplitude,\n calibrateSoundBurstFilteredExtraDb\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n\n return res.data[task];\n };\n\n getMLSPSD = async ({mls, sampleRate}) => {\n const task = 'mls-psd';\n let res = null;\n\n const data = JSON.stringify({\n task,\n mls,\n sampleRate,\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n\n return res.data[task];\n };\n\n getMLSPSDWithRetry = async ({mls, sampleRate}) => {\n let retryCount = 0;\n let response = null;\n\n while (retryCount < this.MAX_RETRY_COUNT) {\n try {\n response = await this.getMLSPSD({mls, sampleRate});\n // If the request is successful, break out of the loop\n break;\n } catch (error) {\n console.error(`Error occurred. Retrying... (${retryCount + 1}/${this.MAX_RETRY_COUNT})`);\n retryCount++;\n await new Promise(resolve => setTimeout(resolve, this.RETRY_DELAY_MS));\n }\n }\n\n if (response) {\n return response;\n } else {\n throw new Error(\n `Failed to get inverse impulse response after ${this.MAX_RETRY_COUNT} attempts.`\n );\n }\n };\n\n getComponentInverseImpulseResponseWithRetry = async ({\n payload,\n mls,\n lowHz,\n highHz,\n componentIRGains,\n iirLength,\n componentIRFreqs,\n sampleRate,\n mlsAmplitude,\n irLength,\n calibrateSoundSmoothOctaves,\n calibrateSoundBurstFilteredExtraDb\n }) => {\n let retryCount = 0;\n let response = null;\n\n while (retryCount < this.MAX_RETRY_COUNT) {\n try {\n response = await this.getComponentInverseImpulseResponse({\n payload,\n mls,\n lowHz,\n highHz,\n componentIRGains,\n iirLength,\n componentIRFreqs,\n sampleRate,\n mlsAmplitude,\n irLength,\n calibrateSoundSmoothOctaves,\n calibrateSoundBurstFilteredExtraDb\n });\n // If the request is successful, break out of the loop\n break;\n } catch (error) {\n console.error(`Error occurred. Retrying... (${retryCount + 1}/${this.MAX_RETRY_COUNT})`);\n retryCount++;\n await new Promise(resolve => setTimeout(resolve, this.RETRY_DELAY_MS));\n }\n }\n\n if (response) {\n return response;\n } else {\n throw new Error(\n `Failed to get inverse impulse response after ${this.MAX_RETRY_COUNT} attempts.`\n );\n }\n };\n\n getSystemInverseImpulseResponseWithRetry = async ({\n payload,\n mls,\n lowHz,\n highHz,\n iirLength,\n sampleRate,\n mlsAmplitude,\n calibrateSoundBurstFilteredExtraDb\n }) => {\n let retryCount = 0;\n let response = null;\n\n while (retryCount < this.MAX_RETRY_COUNT) {\n try {\n response = await this.getSystemInverseImpulseResponse({\n payload,\n mls,\n lowHz,\n highHz,\n iirLength,\n sampleRate,\n mlsAmplitude,\n calibrateSoundBurstFilteredExtraDb\n });\n // If the request is successful, break out of the loop\n break;\n } catch (error) {\n console.error(`Error occurred. Retrying... (${retryCount + 1}/${this.MAX_RETRY_COUNT})`);\n retryCount++;\n await new Promise(resolve => setTimeout(resolve, this.RETRY_DELAY_MS));\n }\n }\n\n if (response) {\n return response;\n } else {\n throw new Error(\n `Failed to get inverse impulse response after ${this.MAX_RETRY_COUNT} attempts.`\n );\n }\n };\n\n getVolumeCalibration = async ({payload, sampleRate, lCalib}) => {\n const task = 'volume';\n let res = null;\n\n console.log({payload});\n\n const data = JSON.stringify({\n task,\n payload,\n 'sample-rate': sampleRate,\n lCalib,\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL,\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n })\n .catch(error => {\n throw error;\n });\n\n return res.data[task];\n };\n\n getVolumeCalibrationParameters = async ({\n inDBValues,\n outDBSPLValues,\n lCalib,\n componentGainDBSPL,\n }) => {\n const task = 'volume-parameters';\n let res = null;\n\n const data = JSON.stringify({\n task,\n inDBValues,\n outDBSPLValues,\n lCalib,\n componentGainDBSPL,\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL, //server\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n console.log(res.data[task]);\n })\n .catch(error => {\n throw error;\n });\n\n // console.log(res.data[task]);\n //below is an example of res.data[task]\n //{\n // R: 16.56981076554259,\n // RMSError: 1.9289162528535229\n // T: -47.79799120884434,\n // W: 61.0485247483732,\n // backgroundDBSPL: 43.88233142069752,\n // gainDBSPL: -128.24742161208985\n //}\n return res.data[task];\n };\n\n allHzPowerCheck = async ({\n payload, \n sampleRate, \n binDesiredSec,\n burstSec,\n repeats\n }) => {\n const task = 'all-hz-check';\n let res = null;\n\n const data = JSON.stringify({\n payload, \n sampleRate, \n binDesiredSec,\n burstSec,\n repeats\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL, //server\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n console.log(res.data[task]);\n })\n .catch(error => {\n throw error;\n });\n return res.data[task];\n };\n\n volumePowerCheck = async ({\n payload, \n sampleRate, \n preSec,\n Sec,\n binDesiredSec\n }) => {\n const task = 'volume-check';\n let res = null;\n\n const data = JSON.stringify({\n payload, \n sampleRate, \n preSec,\n Sec,\n binDesiredSec\n });\n\n await (0,axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n method: 'post',\n baseURL: PythonServerAPI.PYTHON_SERVER_URL, //server\n url: `/task/${task}`,\n headers: {\n 'Content-Type': 'application/json',\n },\n data,\n })\n .then(response => {\n res = response;\n console.log(res.data[task]);\n })\n .catch(error => {\n throw error;\n });\n return res.data[task];\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (PythonServerAPI);\n\n\n//# sourceURL=webpack://speakerCalibrator/./src/server/PythonServerAPI.js?");
|
|
473
473
|
|
|
474
474
|
/***/ }),
|
|
475
475
|
|
package/package.json
CHANGED
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
class PythonServerAPI {
|
|
9
|
-
|
|
9
|
+
static PYTHON_SERVER_URL = 'https://easyeyes-python-flask-server.herokuapp.com';
|
|
10
10
|
|
|
11
11
|
static TEST_SERVER_URL = 'http://127.0.0.1:5000';
|
|
12
|
-
static PYTHON_SERVER_URL ='http://127.0.0.1:5000';
|
|
12
|
+
// static PYTHON_SERVER_URL ='http://127.0.0.1:5000';
|
|
13
13
|
|
|
14
14
|
/** @private */
|
|
15
15
|
MAX_RETRY_COUNT = 3;
|