Skip to content

Commit

Permalink
chore: test sox
Browse files Browse the repository at this point in the history
  • Loading branch information
sobird committed Feb 18, 2025
1 parent 56f1d6e commit 591f7ce
Showing 1 changed file with 49 additions and 8 deletions.
57 changes: 49 additions & 8 deletions test/sox.ts
Original file line number Diff line number Diff line change
@@ -1,33 +1,71 @@
import { spawn, ChildProcessWithoutNullStreams } from 'node:child_process';
import OpusScript from 'opusscript';
import { aesCtrEncrypt, aesCtrDecrypt } from '@/utils/crypto';


const opusScript = new OpusScript(48000, 2, OpusScript.Application.RESTRICTED_LOWDELAY);
const frameSize = (48000 * 60) / 1000;
const sox = spawn('sox', [
'-t', process.platform === 'win32' ? 'waveaudio' : 'coreaudio', '-d', // 捕获默认麦克风音频
'-t', 'raw', // 指定输入格式为原始音频数据
'-r', '48000', // 采样率
'-b', '16', // 位深
'-c', '2', // 声道数
'-c', '1', // 声道数
'-e', 'signed-integer',
'-', // 从标准输入读取数据
'silence', '1', '0.1', '1%',
], { stdio: 'pipe' });
// 'silence', '1', '0.1', '0.5%', '1', '1', '0.5%'
]);

// console.log('sox', sox);

// packet test

let sequence = 0;
let nonce = '010000000a0027000007947f00000000'
let key = '0aa173303f11d3fd0e25465259c86ce5'


function packet(hex: string) {
const encodedPacket = opusScript.encode(Buffer.from(hex, 'hex'), frameSize);
const encodedDataLengthHex = encodedPacket.length.toString(16).padStart(4, '0');
sequence += 1;
const sequenceHex = sequence.toString(16).padStart(8, '0');

const newNonce = nonce.slice(0, 4)
+ encodedDataLengthHex + nonce.slice(8, 24) + sequenceHex;
const encryptedData = aesCtrEncrypt(key, newNonce, encodedPacket);
const packet = Buffer.concat([Buffer.from(newNonce, 'hex'), encryptedData])

console.log('packet', packet.toString('hex'))
}


const source = '0000ffff0000ffff000000000000000000000000ffff000000000000000000000000ffff000000000000ffff00000000000000000000ffffffff0000000000000000ffff00000000000000000000000002000000ffff01000000000001000100000000000000ffffffff0000ffff000000000100ffff000000000000000000000100000001000000000000000000000001000000000000000000000000000000000000000100000000000000ffff0000000001000100ffff0000000001000000ffffffff0000ffff00000000010001000100000000000000ffff0000000000000100ffff0000ffff0000ffff000001000000000001000000010000000100000000000000000001000000010000000100000000000000ffff00000100000000000000ffffffffffff010000000000000001000000ffff0000000001000000ffff0000000000000000ffff0100ffffffff0000000001000000000000000100ffff01000000ffffffff000000000000010001000000000000000000000000000000000000000000000001000000000001000000000001000000000000000000ffffffff00000000000000000000ffffffff000000000200ffff00000000000000000000000001000000ffff0100ffff000001000100ffff000000000100010000000000010001000000000001000000000001000000ffffffff0000ffff0000010000000000010000000000ffff0000010000000000ffff0000ffff0100000000000100ffffffff0000000000000100010000000000000000000100010000000000020001000000ffff0000ffff000001000000010000000100000000000000000000000100ffff000000000100ffff000000000000ffff00000000000000000000000000000100ffff0000000000000000000000000000000000000100ffffffff0000ffffffff000000000000ffff00000100ffff00000000000000000000000000000100ffff00000000000001000100ffff0000000000000000000001000000ffff00000000000000000000010001000000000000000000ffff0000000001000000000001000000ffffffff000001000000000000000100000000000000ffffffff000000000000010000000000000000000100000000000100010000000000ffff000000000000ffffffffffffffffffff010000000000ffffffff0000ffff000000000000000000000100ffff000000000000000001000000ffff00000000ffff00000100000001000000010000000000000000000000000001000000000000000000000000000000000000000000ffff00000100ffff00000000000000000000010000000000000001000100000001000100010000000000000000000000ffffffff0100010001000000ffffffff000000000000ffff000001000000ffff00000000000000000000ffff000000000000010000000000000000000100010000000000000000000000ffff0100ffff0000ffff000000000100ffff00000000000000000000000001000000ffff00000000000001000000ffff010000000000000000000100010000000000ffff00000000000000000000000000000000ffff0000ffff000000000100000000000000ffff0000010000000100000000000000ffff00000000ffff010001000000000001000000ffff0000000000000000000000000100010000000000ffff0000fffffffffeff00000000000000000000ffff0000000000000100ffff00000000000001000000000000000000ffff02000000000001000000ffffffff000001000000000001000000ffff000001000000000001000000000000000000000000000000ffff01000100000000000000ffff0000ffffffff01000000ffff010001000100ffffffff0000ffff00000000ffff010001000000010000000000ffff000000000000000001000000000000000000000000000000ffff010001000000ffff01000000010000000000ffffffff00000000000000000100000000000100ffff0000000000000000000000000000ffff00000000000000000000010000000000000000000100ffff0000ffff0000ffff0100000000000100000000000100ffff000000000000000000000000ffff0000ffff000000000100ffff00000000ffff020000000000000000000000ffffffff000000000000000000000200000000000000000000000000000000000000ffff0000ffff0000ffff00000100000001000100ffffffff0000010000000000000000000000ffff000000000000ffff000000000000ffff010000000100ffff010000000000ffffffff01000100ffffffff000000000000ffff0000000000000000000000000000ffff0000000001000000ffff000000000000000000000000010000000000ffff0000ffffffff0000000000000000010000000100ffff00000000ffff0000ffff000000000000010000000100ffff0100ffff0000000000000000ffff0000000000000000ffff0000ffff000001000000ffff0000010000000000ffff0100ffffffff0000000000000000000000000000ffff00000000ffff000000000000ffff0000010000000000010000000000ffff00000100ffff00000000010001000000000000000000000000000000000000000000ffff00000000000000000000ffff000000000100ffffffff00000000010000000000000000000000ffff00000000ffff000001000100ffffffff0000ffff00000000ffff000000000000ffff0000ffff0000ffff020000000000010000000100010001000000ffff0000ffff000000000000010000000000ffff0000010000000000ffffffff0000ffff00000000010001000000000000000000010000000000000000000000ffffffff0000ffff0000010001000000010001000100000001000000000000000000000000000000010001000000000000000000ffffffff0000ffff00000100000000000000000000000000000000000100000000000000ffff00000100ffff010001000000ffff000000000000ffff000000000000000001000000000000000000ffff0000ffff01000000ffffffffffff00000000000000000000000000000100ffff0000ffff00000000ffff000001000000ffffffff00000100000000000000000000000000ffff010000000100000001000100ffff000000000000000000000000000001000000ffff0000000000000000000000000000ffff00000000ffff010000000000ffff0000000000000000ffff0000010000000100000000000000000000000000ffff00000000000000000000010000000000ffff0000000000000000000000000000ffff000000000000ffff0000000000000100ffff000000000000ffff00000000010000000000ffff0000ffffffff000000000000000001000100000001000000ffff00000000000000000000000000000000000001000000000000000000ffffffff0000ffff010000000100ffffffff01000100010000000000010000000100000001000000000000000100ffff00000000ffff01000000000000000000000000000000000000000000000000000100ffffffff00000000000000000100ffffffff0000010001000000000000000000ffff01000000ffff000000000100000001000100000000000100ffff000000000000ffff000000000000ffffffff000000000100000000000000000001000000000000000000000000000000000000000000ffff0000000000000000000001000100000001000000ffffffff010000000100000000000000ffff0000010000000000000001000000000000000000000000000100000000000000000000000000000000000100ffff000001000000ffff00000000000000000000000001000000000001000000000000000000ffff00000000ffff00000000000000000000ffff0100ffffffff00000100000000000100ffff00000000ffff0000ffff000000000100010000000100ffff00000100000001000000ffff00000100000000000100000001000000000000000100ffffffffffff00000100ffff0100ffff00000100000000000000ffff000001000000000000000100ffff0100000001000000000001000100000000000000ffff0000ffff00000000ffff010000000000010001000000ffffffff0000ffffffff000000000000ffff0000000000000000000000000000010000000000000000000000ffff0000000000000000000000000000ffff0000000000000000000000000000010000000000ffff000001000000ffff00000000ffff0000ffffffff000000000100000000000100ffff00000100000001000000010001000000ffff00000000000000000000000000000000000001000000010000000100010001000000010000000000000000000000ffff01000000010000000100ffff00000100ffff0000ffff0100000000000000ffff0000000000000000ffffffffffff0000ffffffffffff0000ffff0000ffffffff00000000ffff00000100000000000100000000000000ffffffffffffffff010001000100000000000000ffff01000100000000000000000000000100010001000000ffff000000000000000000000000ffff0000000000000000ffff0000ffff01000000000000000000000000000100000000000000ffff0100ffff0000000000000000010001000000ffff00000000ffff00000000000000000000ffff0000010000000000ffff01000000ffff00000100ffff01000000000000000000ffff00000000000001000000000000000100ffff0000ffff0000ffff01000000ffff0000ffff0100ffff00000100000000000000ffff00000000000000000100ffffffffffff0000ffff0000000000000100ffff010000000000000000000000ffff00000000ffffffff00000000000001000000010000000000000000000000ffff00000000ffff0000ffff0100000000000000ffff0000000000000000ffff0000ffffffff0000010000000000000000000000ffff00000000010000000000000000000100ffffffff00000000ffff000000000000000001000000ffff0000010001000100000001000000000000000100010000000100000000000100000000000000000000000000010000000000ffffffff0000ffffffff0000000000000000000001000000010000000000010000000000000000000000000000000000010000000000000001000000000000000000010000000000ffff000001000000010000000000000000000100ffff00000000000001000000ffff0000ffff0000ffffffff0000ffff00000000000000000000ffff000000000000000001000100000001000000000001000000000001000000ffff0000ffff000001000100010001000000000000000100010000000000ffff0000010000000000000000000000000000000100000001000000010000000000010000000000ffff00000000000000000000ffff00000000000001000100000000000000000000000000ffffffff0000010001000000000000000000010000000000010000000000ffff0000010000000000ffff010000000000ffff0000000000000000000000000000ffff000000000000ffff00000000000000000000000000000100010000000000ffff000000000000ffffffff0000000000000000ffff00000000ffff000000000000000000000000000000000000ffff00000100ffff0000000000000000ffff000000000000ffff0000ffff0000000001000000ffff01000000010000000100010001000000ffff01000000ffff00000000000000000000ffffffff01000100010000000000feff00000000ffff000000000000ffff010000000000ffff0000000000000000000000000000ffff000000000000ffff0000000000000000ffff0000000000000000feff00000000010000000100ffff0000ffff01000100000000000000000001000000ffff000000000000000000000000ffff01000000000001000000ffff00000000010001000100000000000000010001000000ffff000000000000ffff0000ffffffff0100ffff01000000ffffffff00000100010000000100010000000000ffff0000010000000000ffff0000000000000000000000000000ffff000000000000000000000100000000000000000000000000ffffffff00000000010000000100ffff000000000000ffff00000000000001000000000000000000ffff0000ffff000000000000ffff0000010001000000000000000000ffffffff00000100ffffffffffffffff010001000000000000000000010000000000010000000000ffff0000000000000000000000000000000000000100ffff0000010000000000ffff00000000000001000000ffff0000000000000000000000000000000000000000ffff00000000ffff0100ffff0000010000000000010000000000ffffffff000001000000ffff000000000000ffff0000010000000000000001000100000000000000000000000000000001000000010000000000ffffffff0000ffff0000000001000000000001000000000001000000000000000100010000000000ffff00000000ffff0000ffff0000ffff0000000000000000ffff0100000000000000ffff000000000000010000000100ffff000000000100010001000000ffffffff000000000000ffff00000000000000000000000000000100ffff0000000001000000ffff000000000100000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000100ffff01000000ffff00000100ffffffff0000ffff00000000000000000000000001000000000001000000ffff00000000ffff00000000010000000000000000000000000000000100ffff0000ffff0000ffff000001000000000000000100ffff00000000000000000000010000000000010001000000010000000000ffff00000000ffff000001000000000000000000ffffffffffff00000000000000000000000001000000ffff00000000000000000000ffff000000000000010000000000000000000000000000000000ffff00000000ffff0000ffff000000000000ffff000000000000ffff000001000100ffffffff0100000000000000ffff0000ffff00000000000000000000ffff00000000ffffffff000000000000010000000000000000000100ffffffff0000000000000000010000000100000000000000000000000000000001000000ffff0000ffffffff00000000ffff00000000000000000000ffff00000000ffff0000000000000000ffff00000000000000000100000000000000ffff0000000000000000000000000100010000000000000000000000ffffffff0000ffffffff00000000000000000000000001000000ffff0000ffff00000000000000000000ffff01000100ffff0000ffff010000000100ffff0000ffff01000100ffffffff01000000010000000000000000000000010000000000000000000100ffff00000000000000000000ffff00000000ffff0100010000000000ffff0000010000000000000001000000000001000000000000000000000000000000000001000100ffff010000000000ffff0000010000000000ffff00000000010001000000ffffffff0100010001000000000000000000000000000000000000000000000000000100ffff010000000000010000000200000001000000ffff0100ffff0100ffffffffffff010000000000000000000000000000000000ffff0000000000000000ffff0100ffffffff000000000000ffff0000ffff010000000000010000000100ffff000000000100000001000100010000000000000000000000000000000100ffff0000000001000000000000000100ffff0000010000000000010000000000000000000000000000000000ffff0000ffffffff00000000ffff010000000000ffff0000000001000000000001000000ffff000000000000000000000000000001000100ffff0000ffff010000000000ffff00000000000000000000000000000000000001000000ffffffff0000ffff00000000000000000000000000000000ffff00000000ffff000000000000ffff0000ffff0000ffff0100ffffffff00000000ffffffff0000000000000000010000000100010000000000010000000000ffff000000000100ffffffff01000000000000000000000000000100ffff0000ffff000000000000000001000000000001000100ffff0000000000000000ffff0000ffff01000100000000000100000000000000ffff00000000ffff0000000000000000000000000000000000000000ffff00000000000000000000ffff010001000000ffff00000100ffffffff00000200ffffffff000000000000ffffffffffff000000000000010000000000000000000100000000000000010000000000000000000000000001000100000000000000010000000000010001000000ffff000000000000ffff010001000000010000000000000001000000000000000000000000000000ffff0000000001000000000001000100000000000000010000000100ffffffff00000000010001000100010000000000ffff00000000ffff000001000000ffff00000000000000000000ffffffff0000ffff0000000000000000000000000100ffffffff0000000000000000ffff0000000000000000ffff000000000000ffff000000000000ffff00000000000000000000000001000000000000000000ffff00000100ffffffff000000000000010000000000ffff0100000000000100000001000000ffff000000000000ffff000000000000000000000100010000000000ffffffff0100000000000000ffffffff00000000ffff000000000000ffff010000000100000000000000000000000000ffff000000000000000000000000000000000100000000000100ffff0000000000000000ffffffffffff01000100ffff010001000000ffffffff000001000000000001000000000001000100ffff0000000000000100000000000000ffffffff00000000ffff0100ffff000001000100000000000000000000000000000000000000ffff000001000000000000000000ffff0000000000000000ffff00000000000001000000000000000100000000000100ffff0000000000000000000000000000ffff0000ffff0000010001000000000000000000000000000000ffff0000010000000000ffff0000000000000000000000000000010001000000000000000000010000000000000000000000ffff010000000000ffff010000000100ffff0000000000000000000001000100ffff0000ffff0000010001000000ffff00000100000000000100010000000100000000000000010000000000010000000000000000000000000000000000010000000000000001000000000000000000ffff010001000000000000000100010000000000000000000000010000000000010000000000000001000000ffff0000000000000000ffff0000000000000000000001000100ffff00000000010000000000000000000100010000000000ffff00000100ffff000000000000000000000100000001000000ffff00000000000000000000ffff00000000000001000000000000000000000000000000000001000000000000000000000000000000ffff00000000ffffffff000000000100000000000000000000000000000000000000000000000000ffffffff0000ffff0100010000000000ffff000001000000ffffffff0000000000000000ffffffff00000000000000000000ffff0000ffff0000ffffffff00000000ffff0000000001000000000001000000000001000000ffff000000000000000001000000ffff0000000000000000ffff000000000000ffffffff010000000000000000000000000000000000010000000100ffff0000000000000000000000000000000001000000010001000000010000000000010000000000000000000000000000000000000001000000000001000100ffffffff0000010000000000ffffffff0100ffffffff000000000000000000000000ffff000000000000ffff0000000000000000000001000000000000000000ffffffff00000000000000000100ffff00000000ffffffffffff0000ffffffff0100000000000100010000000000ffff000000000000000000000000ffff00000000000001000000000000000000000000000000010000000000000000000100000000000000ffff00000000ffff0000000001000000ffff0100000000000000ffff0000010001000000000000000000010000000100ffff0000ffff000001000000000000000000000000000000000000000000ffff0100000000000000000001000000ffff00000000ffff01000100000000000000ffff00000000ffff0000000000000000000000000000ffff0000000001000000ffff0000ffff0000ffff000001000000000000000000000000000000000000000000ffff00000000000000000000000001000100000000000000000000000000ffff00000000ffff0000ffff00000000000000000000000000000000ffff0000000000000000ffff000000000100000000000100ffff00000100ffff010000000000ffff000000000000000000000000ffff00000100000000000100000001000000ffff0000ffff00000100000001000000010000000100010000000000010000000100ffff010001000000000001000000ffff000000000000020000000000010000000000000000000000000000000000000001000000ffffffff0000000000000000ffff0000000000000000000000000000ffff000001000000ffff0000000000000000000000000100010000000000000000000000000001000000000000000000000000000000000000000000000000000100ffffffffffff0000000000000000ffff0000000000000000000001000000000001000000000002000000ffff00000000000001000100ffff000001000000010000000000000000000000000000000100010000000100ffff00000000000000000000010000000000ffff0000010000000100000000000100000000000000ffff01000000010000000000ffff0000ffff00000000ffff0100000000000000ffff0000010000000000ffff0000010000000000000001000100010000000000000000000000ffff01000000000000000000ffff000001000000000001000000000000000000ffff000000000000ffffffff0000010000000100000001000000000000000000ffff0100010000000000000000000100ffff0000ffffffff0000ffff'

packet(source)

sox.stdout.on('data', (chunk) => {
console.log('chunk', chunk);
// const copyC = Buffer.from(chunk)
// console.log('first', chunk.length)
// console.log('chunk', chunk.toString('hex'));
// console.log('decode', opusScript.encode(chunk, frameSize).length)


process.exit(1)

});
sox.stderr.on('data', (chunk) => {
console.log('sox --------chunk', chunk.toString());
});

setTimeout(() => {
sox.kill('SIGSTOP');
sox.stdout.pause();
// sox.kill('SIGSTOP');
// sox.stdout.pause();
}, 3000);

setTimeout(() => {
sox.kill('SIGCONT');
sox.stdout.resume();
// sox.kill('SIGCONT');
// sox.stdout.resume();
}, 10000);

// 扬声器
Expand All @@ -44,3 +82,6 @@ const sox2 = spawn('sox', [
sox2.stderr.on('data', (chunk) => {
console.log('sox2 chunk', chunk.toString());
});


sox.stdout.pipe(sox2.stdin)

0 comments on commit 591f7ce

Please sign in to comment.