@elizaos/plugin-discord 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +45 -8
- package/dist/index.js.map +1 -1
- package/package.json +5 -7
package/dist/index.js
CHANGED
|
@@ -2586,8 +2586,6 @@ var MessageManager = class {
|
|
|
2586
2586
|
};
|
|
2587
2587
|
|
|
2588
2588
|
// src/voice.ts
|
|
2589
|
-
import { EventEmitter } from "node:events";
|
|
2590
|
-
import { pipeline } from "node:stream";
|
|
2591
2589
|
import {
|
|
2592
2590
|
NoSubscriberBehavior,
|
|
2593
2591
|
StreamType,
|
|
@@ -2602,15 +2600,48 @@ import {
|
|
|
2602
2600
|
ChannelType as ChannelType8,
|
|
2603
2601
|
ModelType as ModelType8,
|
|
2604
2602
|
createUniqueUuid as createUniqueUuid5,
|
|
2605
|
-
getWavHeader,
|
|
2606
2603
|
logger as logger5
|
|
2607
2604
|
} from "@elizaos/core";
|
|
2608
2605
|
import {
|
|
2609
2606
|
ChannelType as DiscordChannelType3
|
|
2610
2607
|
} from "discord.js";
|
|
2608
|
+
import { EventEmitter } from "node:events";
|
|
2609
|
+
import { pipeline } from "node:stream";
|
|
2611
2610
|
import prism from "prism-media";
|
|
2612
2611
|
var DECODE_FRAME_SIZE = 1024;
|
|
2613
2612
|
var DECODE_SAMPLE_RATE = 16e3;
|
|
2613
|
+
function createOpusDecoder(options) {
|
|
2614
|
+
try {
|
|
2615
|
+
return new prism.opus.Decoder(options);
|
|
2616
|
+
} catch (error) {
|
|
2617
|
+
logger5.warn(`Failed to create opus decoder with prism-media: ${error}`);
|
|
2618
|
+
try {
|
|
2619
|
+
const { generateDependencyReport } = __require("@discordjs/voice");
|
|
2620
|
+
const report = generateDependencyReport();
|
|
2621
|
+
logger5.debug("Voice dependency report:", report);
|
|
2622
|
+
} catch (reportError) {
|
|
2623
|
+
logger5.warn("Could not generate dependency report:", reportError);
|
|
2624
|
+
}
|
|
2625
|
+
throw error;
|
|
2626
|
+
}
|
|
2627
|
+
}
|
|
2628
|
+
function getWavHeader(audioLength, sampleRate, channelCount = 1, bitsPerSample = 16) {
|
|
2629
|
+
const wavHeader = Buffer.alloc(44);
|
|
2630
|
+
wavHeader.write("RIFF", 0);
|
|
2631
|
+
wavHeader.writeUInt32LE(36 + audioLength, 4);
|
|
2632
|
+
wavHeader.write("WAVE", 8);
|
|
2633
|
+
wavHeader.write("fmt ", 12);
|
|
2634
|
+
wavHeader.writeUInt32LE(16, 16);
|
|
2635
|
+
wavHeader.writeUInt16LE(1, 20);
|
|
2636
|
+
wavHeader.writeUInt16LE(channelCount, 22);
|
|
2637
|
+
wavHeader.writeUInt32LE(sampleRate, 24);
|
|
2638
|
+
wavHeader.writeUInt32LE(sampleRate * bitsPerSample * channelCount / 8, 28);
|
|
2639
|
+
wavHeader.writeUInt16LE(bitsPerSample * channelCount / 8, 32);
|
|
2640
|
+
wavHeader.writeUInt16LE(bitsPerSample, 34);
|
|
2641
|
+
wavHeader.write("data", 36);
|
|
2642
|
+
wavHeader.writeUInt32LE(audioLength, 40);
|
|
2643
|
+
return wavHeader;
|
|
2644
|
+
}
|
|
2614
2645
|
var AudioMonitor = class {
|
|
2615
2646
|
readable;
|
|
2616
2647
|
buffers = [];
|
|
@@ -2932,11 +2963,17 @@ var VoiceManager = class extends EventEmitter {
|
|
|
2932
2963
|
logger5.warn(`[monitorMember] No receiveStream or empty stream for user ${entityId}`);
|
|
2933
2964
|
return;
|
|
2934
2965
|
}
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2966
|
+
let opusDecoder;
|
|
2967
|
+
try {
|
|
2968
|
+
opusDecoder = createOpusDecoder({
|
|
2969
|
+
channels: 1,
|
|
2970
|
+
rate: DECODE_SAMPLE_RATE,
|
|
2971
|
+
frameSize: DECODE_FRAME_SIZE
|
|
2972
|
+
});
|
|
2973
|
+
} catch (error) {
|
|
2974
|
+
logger5.error(`[monitorMember] Failed to create opus decoder for user ${entityId}: ${error}`);
|
|
2975
|
+
return;
|
|
2976
|
+
}
|
|
2940
2977
|
const volumeBuffer = [];
|
|
2941
2978
|
const VOLUME_WINDOW_SIZE = 30;
|
|
2942
2979
|
const SPEAKING_THRESHOLD = 0.05;
|