Spectrogram drawer for heart, lung and bowel sounds
npm i spectrogram-web-sdk --save
import AudioEngine from 'spectrogram-drawer';
<canvas id="canvasID"></canvas>
this.audioEngine = await new AudioEngine.default().initAudioEngine('canvasID', 'YOUR_SDK_KEY');
let constraints = { audio: true }
navigator.mediaDevices.getUserMedia(constraints)
.then(async (stream) => {
this.audioContext = new AudioContext();
await this.audioEngine.startIt(false);
this.audioEngine.loadOpusDecoder();
})
Config:
- mode: 'HEART' | 'LUNG'
- gain for HEART: minimum 1 to maximum 3
- gain for LUNG: minimum 1 to maximum 20
const audioContext = new AudioContext();
fetch('audio.wav')
.then(response => response.arrayBuffer())
.then(arrayBuffer => audioContext.decodeAudioData(arrayBuffer))
.then(audioBuffer => {
this.audioEngine.testAudioInput(audioBuffer.getChannelData(0));
});
navigator.mediaDevices.getUserMedia({audio: true})
.then((stream) => {
const context = new AudioContext({sampleRate: 16000});
const source = context.createMediaStreamSource(stream);
const processor = context.createScriptProcessor(1024, 1, 1);
source.connect(processor);
processor.connect(context.destination);
processor.onaudioprocess = (e) => {
this.audioEngine.testAudioInput(e.inputBuffer.getChannelData(0));
};
});
this.audioEngine.pause();
this.audioEngine.stop();
this.audioEngine.resume();
this.audioEngine.playbackSpeedChange(speed); // speed [0.25, 0.5, 0.75, 1, 1.25, 1.50, 1.75, 2]
this.audioEngine.setAutoGainFlag(false); // By default, the gain is enabled
this.audioEngine.setFilterFlag(false); // By default, the filter is enabled