实现变声

实现变声

简介

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