更新记录

1.0.0(2026-07-19)

首发:自研高性能实时变声与音效处理核心:变调(萝莉/大叔)、机器人音、混响效果。纯自研实现、无额外系统依赖。


平台兼容性

uni-app x(5.14)

Chrome Safari Android iOS 鸿蒙 微信小程序
× × 5.0 12 × ×

nex-voice —— 自研实时变声 / 音效

自研高性能实时变声核心(变调萝莉/大叔 + 机器人 ring-mod + Schroeder 混响),提供 uni-app 可调的 JS API。纯自研实现、无额外系统依赖仅支持 App 端(Android / iOS),H5 / 小程序加载不了原生库。

同一份 utssdk 插件同时支持 uni-app x(uvue)经典 uni-app(vue3),无需分叉。 形态:对象型VoiceChanger 有状态流式,攒块输出)+ 2 个离线自由函数(processBuffer / processWavFile)。 完整契约(参数语义 / 算法细节 / 安全边界 / 资源上限)见 docs/voice-plugin-contract.md

API(8 个)

JS API 签名 说明
new VoiceChanger new VoiceChanger(sampleRate: number, params: VoiceParams) 建有状态流式处理器(固定采样率 + 初始参数,单声道)
VoiceChanger.process process(frame: number[]): number[] 推一帧 PCM16,攒够 STREAM_BLOCK=8192 才输出一块、否则空
VoiceChanger.setParams setParams(params: VoiceParams): void 运行中切换变声参数
VoiceChanger.reset reset(): void 清空流式状态(换会话/重新开始)
VoiceChanger.latencySamples latencySamples(): number 算法固有延迟 = 攒块阈值 STREAM_BLOCK=8192 样本(@44.1k ≈ 186ms)
VoiceChanger.flush flush(): number[] 结束时吐出残余不足一块的尾段
processBuffer processBuffer(samples: number[], sampleRate: number, params: VoiceParams): number[] 离线整段处理 PCM16 数组(自由函数)
processWavFile processWavFile(src: string, dest: string, params: VoiceParams): VoiceFileResult 离线处理整个 WAV 文件(路径进 / 路径出,自由函数)

VoicePreset'loli' / 'uncle' / 'robot' / 'reverb' / 'custom'(以 string 传递)。 VoiceParams / VoiceFileResult 字段一律 camelCase,见 interface.uts

用法

import { VoiceChanger, VoicePreset, processWavFile } from "@/uni_modules/nex-voice";

// 流式:逐帧推 PCM16,攒够一块才出
const vc = new VoiceChanger(44100, { preset: VoicePreset.Loli });
const out = vc.process(frame);   // number[](可能为空,攒块中)
// ... 结束时
const tail = vc.flush();

// 离线整文件
const r = processWavFile(src, dest, { preset: VoicePreset.Robot });

限制

  • 仅 App 端(Android / iOS);H5 / 各家小程序不支持。
  • 实时直出(<50ms 延迟)尚未端到端验证:端到端延迟取决于真机原生音频回调接线, 本插件只保证算法延迟 latencySamples(),详见契约 §6.2。
  • 入参连续音频参数做 clamp + 非有限值兜默认,跨语言边界异常兜底、不闪退。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据。所有计算/处理均在本地完成,无任何网络请求、不发送数据到任何服务器。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。