@audio/ encode-gsm
Status pending calibration
npm0.1.0licenseMIT
Encode PCM audio to GSM 06.10 full rate (libgsm WASM)
Overview
- Install
- Updated
- Family
- encode, 14 packages under it
- Tags
- read & write
Encode PCM audio to GSM 06.10 full-rate speech (13 kbit/s, 8 kHz mono), with libgsm 1.0.22 (Jutta Degener and Carsten Bormann, TU Berlin) compiled to WASM.
Install
Usage
import gsm from '@audio/encode-gsm'
let enc = await gsm({ sampleRate: 8000 })
let bytes = enc.encode([samples]) // whole 33-byte frames as 160 samples fill each
let last = enc.flush() // the last one, zero-padded
enc.free()
The output is raw frames: SoX's .gsm, RTP payload type 3. GSM runs at 8 kHz, mono: resample and pick a channel first. Samples are written as round(x·32768), clipped, as libgsm takes 16-bit PCM.
Tested
Byte for byte what SoX 14.4.2 (its libgsm) writes, whole and in chunks of any length.
License
MIT; libgsm under its own permissive notice (in LICENSE).