简介
rtc-voice-changer 用来对 TRTC 进行的音视频通话进行变声。
前提条件
使用变声功能需开通 TRTC 包月套餐 尊享版及更高版本。
支持的浏览器:Chrome 66+, Edge 79+, Safari 14.1+, Firefox 76+。
为了更好的使用变声,建议您使用最新版本的 Chrome 浏览器。
安装
npm install rtc-voice-changer
实现流程
Step 1. 初始化 RTCVoiceChanger
import RTCVoiceChanger from 'rtc-voice-changer';
const voiceChanger = new RTCVoiceChanger();
Step 2. 创建 processor 实例来处理音视频流
一个 processor 只能处理一条 stream
let localStream = TRTC.createStream({ audio: true, video: true });
await localStream.initialize();
const processor = await voiceChanger.createProcessor({ userId, sdkAppId, userSig });
// 1-熊孩子 2-萝莉 3-大叔 4-重金属 5-感冒 6-外语腔 7-困兽 8-肥宅 9-强电流 10-重机械 11-空灵
await processor.process(localStream, 1);
// 中途切换效果
await processor.setEffect(3);
Step 3. 结束通话关闭特效并且销毁资源
await client.leave();
await processor.close();
processor.destroy();
API
RTCVoiceChanger
创建插件实例
const rtcVoiceChanger = new RTCVoiceChanger();
createProcessor(params)
创建 Processor 实例
const voiceChangerProcessor = await rtcVoiceChanger.createProcessor({
  sdkAppId,
  userId,
  userSig
});
Params:
| Name | Type | Description | 
|---|---|---|
| sdkAppId | number | sdkAppId 在 实时音视频控制台 单击 应用管理 > 创建应用 创建新应用之后,即可在 应用信息 中获取 sdkAppId 信息。 | 
| userId | string | 用户ID 建议限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。 | 
| userSig | string | userSig 签名 计算 userSig 的方式请参考 UserSig 相关。 | 
Processor
process(localStream, voiceType)
给本地流的音频增加变声效果。 Params:
| Name | Type | Description | 
|---|---|---|
| localStream | LocalStream | 本地流 | 
| voiceType | number | 1-熊孩子 2-萝莉 3-大叔 4-重金属 5-感冒 6-外语腔 7-困兽 8-肥宅 9-强电流 10-重机械 11-空灵。 | 
await voiceChangerProcessor.process(localStream, 1);
setEffect(type)
切换效果
| Name | Type | Description | 
|---|---|---|
| voiceType | number | 1-熊孩子 2-萝莉 3-大叔 4-重金属 5-感冒 6-外语腔 7-困兽 8-肥宅 9-强电流 10-重机械 11-空灵。 | 
await voiceChangerProcessor.setEffect(2);
setPitch(pitch)
设置音调
| Name | Type | Description | 
|---|---|---|
| pitch | number | 调整音调,0 代表正常,负数降低音调,正数提高音调。建议取值范围 -1 ~ 1 | 
await voiceChangerProcessor.setPitch(-0.5);
close()
关闭变声效果,会将 localStream 经过变声的 audio track 替换成原来的 audio track
await voiceChangerProcessor.close();
destroy()
销毁 processor 释放资源,结束 processor 生命周期。
voiceChangerProcessor.destroy();
Changelog
Version 1.0.1 @2023.7.7
Improvement
优化性能表现
Version 1.0.0 @2023.06.20
正式发布 1.0.0 版本