确保你的服务器满足以下要求:
- Ubuntu (18.04 或更高版本)
- CentOS (7.0 或更高版本)
- x86-64
注:如需在其他架构上集成 SDK,请联系 sales@shengwang.cn
- CPU:8 核 1.8 GHz 或更高配置
- 内存:2 GB(推荐 4 GB 或更高)
- 服务器接入公网,有公网 IP
- 服务器允许访问
.agora.io
以及.agoralab.co
域名
- Apache Maven 或其他构建工具(本文以 Apache Maven 为例)
- JDK 8
请参考官方示例文档。
将下载好的 SDK 放到 examples/libs
目录下。
在 examples
目录下新建 .keys
文件,并在文件中按照以下格式添加 APP_ID
和 TOKEN
值。
APP_ID=XXX
TOKEN=XXX
注:如果没有对应值不填即可。
以下以 MultipleConnectionPcmSendTest.sh
为例,其他测试可替换对应的 .sh
文件:
请按照以下步骤进行测试:
#!/bin/bash
set -e
cd examples
./build.sh
./script/MultipleConnectionPcmSendTest.sh
- 集成 SDK:确保在
examples/libs
目录下集成 SDK。 - 编译示例:进入
examples
目录并执行build.sh
进行编译。 - 运行测试:执行
/script/MultipleConnectionPcmSendTest.sh
脚本进行测试。
- 脚本执行顺序:确保按照以上顺序执行脚本,以避免依赖问题。
- 测试替换:若需测试其他功能,只需替换对应的
.sh
文件。
-
创建一个新的 VAD 实例:
AgoraAudioVad audioVad = new AgoraAudioVad();
-
初始化 VAD 配置:
AgoraAudioVadConfig config = new AgoraAudioVadConfig(); audioVad.initialize(config);
调用 processPcmFrame
方法处理一个音频帧。该帧是一个 16 位、16 kHz 和单声道的 PCM 数据:
byte[] frame = // 获取音频 PCM 数据
VadProcessResult result = audioVad.processPcmFrame(frame);
VadProcessResult
标识音频 VAD 处理结果:
-
state
返回值表示当前语音活动检测(VAD)状态:0
表示未检测到语音1
表示语音开始2
表示正在进行语音3
表示当前语音段结束
-
如果函数处于状态
1
、2
或3
,则outFrame
将包含与 VAD 状态相对应的 PCM 数据。
当用户想要执行 ASR/TTS 处理时,应将 outFrame
的数据发送到 ASR 系统。
当不再需要 VAD 实例时,调用 audioVad.destroy()
:
audioVad.destroy();
- 在不再需要 ASR 系统时,应释放 VAD 实例。
- 一个 VAD 实例对应一个音频流。
AgoraAudioVad
是一个用于语音活动检测(VAD)的管理类。通过这个类,你可以实现对音频数据的处理和分析。
- 调用
AgoraAudioVad
构造函数创建AgoraAudioVad
对象。 - 使用
AgoraAudioVadConfig
配置AgoraAudioVad
对象。
配置 AgoraAudioVad
对象。
- 参数
config
: 配置参数 (AgoraAudioVadConfig
类型)
- 返回值
0
: 成功- 非
0
: 失败
处理音频 PCM 数据。
- 参数
frame
: 音频 PCM 数据 (字节数组)
- 返回值
VadProcessResult
对象,包含:state
: 当前语音活动检测(VAD)状态outFrame
: 与 VAD 状态相对应的 PCM 数据
销毁 VAD 实例。
AgoraAudioVad vad = new AgoraAudioVad();
AgoraAudioVadConfig config = new AgoraAudioVadConfig();
// 设置配置参数
int result = vad.initialize(config);
if (result == 0) {
byte[] audioFrame = // 获取音频 PCM 数据
VadProcessResult processResult = vad.processPcmFrame(audioFrame);
// 处理 VAD 结果
}
vad.destroy();