diff --git a/lib/talk/startChart/views/talkView/talk_view_logic.dart b/lib/talk/startChart/views/talkView/talk_view_logic.dart index 7c4d8fd1..2c11489e 100644 --- a/lib/talk/startChart/views/talkView/talk_view_logic.dart +++ b/lib/talk/startChart/views/talkView/talk_view_logic.dart @@ -570,8 +570,9 @@ class TalkViewLogic extends BaseGetXController { } Future _onFrame(List frame) async { - final list = listLinearToALaw(frame); - final ms = DateTime.now().millisecondsSinceEpoch - + final List processedFrame = preprocessAudio(frame); + final List list = listLinearToALaw(processedFrame); + final int ms = DateTime.now().millisecondsSinceEpoch - state.startRecordingAudioTime.value.millisecondsSinceEpoch; // 发送音频数据 await StartChartManage().sendTalkDataMessage( @@ -588,6 +589,19 @@ class TalkViewLogic extends BaseGetXController { AppLog.log(error.message!); } + List preprocessAudio(List pcmList) { + // 简单的降噪处理 + final List processedList = []; + for (int pcmVal in pcmList) { + // 简单的降噪示例:将小于阈值的信号置为0 + if (pcmVal.abs() < 500) { + pcmVal = 0; + } + processedList.add(pcmVal); + } + return processedList; + } + List listLinearToALaw(List pcmList) { final List aLawList = []; for (int pcmVal in pcmList) {