简介
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 版本