WIP: support v1.5.x, add recording output function 2

This commit is contained in:
wataru 2023-02-12 13:29:50 +09:00
parent 449f5a55d1
commit 305dac7e38
4 changed files with 12 additions and 16 deletions

File diff suppressed because one or more lines are too long

View File

@ -7,7 +7,6 @@ import { BufferSize, DefaultVoiceChangerClientSetting, Protocol, ServerSettingKe
import MicrophoneStream from "microphone-stream"; import MicrophoneStream from "microphone-stream";
import { AudioStreamer, Callbacks, AudioStreamerListeners } from "./AudioStreamer"; import { AudioStreamer, Callbacks, AudioStreamerListeners } from "./AudioStreamer";
import { ServerConfigurator } from "./ServerConfigurator"; import { ServerConfigurator } from "./ServerConfigurator";
import { VoiceChangerWorkletProcessorRequest } from "./@types/voice-changer-worklet-processor";
// オーディオデータの流れ // オーディオデータの流れ
// input node(mic or MediaStream) -> [vf node] -> microphne stream -> audio streamer -> // input node(mic or MediaStream) -> [vf node] -> microphne stream -> audio streamer ->
@ -41,15 +40,7 @@ export class VoiceChangerClient {
onVoiceReceived: (voiceChangerMode: VoiceChangerMode, data: ArrayBuffer): void => { onVoiceReceived: (voiceChangerMode: VoiceChangerMode, data: ArrayBuffer): void => {
// console.log(voiceChangerMode, data) // console.log(voiceChangerMode, data)
if (voiceChangerMode === "realtime") { if (voiceChangerMode === "realtime") {
const req: VoiceChangerWorkletProcessorRequest = { this.vcNode.postReceivedVoice(data)
requestType: "voice",
voice: data,
numTrancateTreshold: 0,
volTrancateThreshold: 0,
volTrancateLength: 0
}
this.vcNode.postReceivedVoice(req)
return return
} }

View File

@ -14,10 +14,15 @@ export class VoiceChangerWorkletNode extends AudioWorkletNode {
console.log(`[worklet_node][voice-changer-worklet-processor] created.`); console.log(`[worklet_node][voice-changer-worklet-processor] created.`);
} }
postReceivedVoice = (req: VoiceChangerWorkletProcessorRequest) => { postReceivedVoice = (data: ArrayBuffer) => {
this.port.postMessage({ const req: VoiceChangerWorkletProcessorRequest = {
request: req requestType: "voice",
}, [req.voice]); voice: data,
numTrancateTreshold: 0,
volTrancateThreshold: 0,
volTrancateLength: 0
}
this.port.postMessage(req)
} }
handleMessage(event: any) { handleMessage(event: any) {

View File

@ -60,7 +60,7 @@ class VoiceChangerWorkletProcessor extends AudioWorkletProcessor {
} }
handleMessage(event: any) { handleMessage(event: any) {
const request = event.data.request as VoiceChangerWorkletProcessorRequest const request = event.data as VoiceChangerWorkletProcessorRequest
if (request.requestType === "config") { if (request.requestType === "config") {
this.numTrancateTreshold = request.numTrancateTreshold this.numTrancateTreshold = request.numTrancateTreshold
this.volTrancateLength = request.volTrancateLength this.volTrancateLength = request.volTrancateLength