実現したいこと
ボイスチャットにBOTを加入させて
他のユーザーの発言を文字起こしし
GPTに投げてその返答を音声化して喋らせたい
前提
環境:glitch
"discord.js": "^14.8.0",
"@discordjs/voice": "^0.15.0",
ボイスチャットの音声を文字起こしする事以外は出来た。
ボイスチャットを受信しPCMをWAVにエンコードした上で再生するとバチッと言う一瞬だけのノイズになってしまい
文字にならない
ボイスチャットにBOTを加入させてこちらの発言で発火する所までは出来たが
その内容が良くない。
該当のソースコード
node.js
1connection.receiver.speaking.on('start', (userId) => { 2 const audio = connection.receiver.subscribe(userId, { 3 end: { 4 behavior: EndBehaviorType.AfterSilence, 5 duration: 1000, 6 }, 7 }); 8 9 const audioChunks = []; 10 11 audio.on('data', (chunk) => { 12 audioChunks.push(chunk); 13 }); 14 15 audio.on('end', async () => { 16 17const audioBuffer = Buffer.concat(audioChunks); 18 console.log('audio ended'); 19console.log(audio) 20const pcmData = audioBuffer; 21// WAV ファイルに変換する 22const wavWriter = new wav.FileWriter('/tmp/output.wav', { 23 channels: 2, 24 sampleRate: 32000, 25 bitDepth: 16 26}); 27 28wavWriter.write(pcmData); 29wavWriter.end(); 30以下その他GPT系の処理等々
疑ってる所
const audioChunks = [];
audio.on('data', (chunk) => {
audioChunks.push(chunk);
});
でそもそもPCMの収集はあってるのか?
この収集があってないからWAVに変換してもバチッと言うノイズだけになってしまっているのではないか?
// WAV ファイルに変換する
const wavWriter = new wav.FileWriter('/tmp/output.wav', {
channels: 2,
sampleRate: 32000,
bitDepth: 16
});
wavへの変換のヘッダのパラメータ等が誤っているのではないか?
以上です。
是非お力を貸していただきたいです。

回答1件
あなたの回答
tips
プレビュー