spectogram-web-sdk

1.0.3 • Public • Published

Spectrogram Drawer

Spectrogram drawer for heart, lung and bowel sounds

Install the NPM Module

npm i spectrogram-web-sdk --save

Usage

1. Import AudioEngine

import AudioEngine from 'spectrogram-drawer';

2. Add Canvas to View:

    <canvas id="canvasID"></canvas>

3. Initialize:

    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

4. Send Audio input

Load Audio files
    const audioContext = new AudioContext();
    fetch('audio.wav')
    .then(response => response.arrayBuffer())
    .then(arrayBuffer => audioContext.decodeAudioData(arrayBuffer))
    .then(audioBuffer => {
        this.audioEngine.testAudioInput(audioBuffer.getChannelData(0));
    });
Live input stream with getUserMedia.
    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));
            };
        });

Properties

1. Pause
this.audioEngine.pause();
2. Stop
this.audioEngine.stop();
3. Resume
this.audioEngine.resume();
4. Change Playback Speed
this.audioEngine.playbackSpeedChange(speed); // speed [0.25, 0.5, 0.75, 1, 1.25, 1.50, 1.75, 2]
5. Disable Auto Gain and Noise Filters
this.audioEngine.setAutoGainFlag(false); // By default, the gain is enabled
this.audioEngine.setFilterFlag(false); // By default, the filter is enabled
NOTE: We are supporting 5 canvases to be displayed at the same time in a screen

/spectogram-web-sdk/

    Package Sidebar

    Install

    npm i spectogram-web-sdk

    Weekly Downloads

    1

    Version

    1.0.3

    License

    ISC

    Unpacked Size

    75.9 kB

    Total Files

    4

    Last publish

    Collaborators

    • stethio