QQ/微信语音编解码
interface encodeResult {
data: Uint8Array
duration: number
}
interface decodeResult {
data: Uint8Array
duration: number
}
// pcm 转 silk。input 为单声道 pcm_s16le 文件,samplingRate 为采样率。
function encode(input: Uint8Array, sampleRate: number): Promise<encodeResult>
// silk 转 pcm。input 为 silk 文件,samplingRate 为采样率。
function decode(input: Uint8Array, sampleRate: number): Promise<decodeResult>
// 获取 silk 音频时长,输出单位为毫秒。
function getDuration(silk: Uint8Array, frameMs?: number): number
const { encode } = require('silk-wasm');
const { readFile, writeFile } = require('fs/promises');
(async function () {
const pcm = await readFile('./test.pcm')
const silk = await encode(pcm, 24000)
await writeFile('./test.silk', silk.data)
})()
cd binding
emcmake cmake .
emmake make