设置音频属性
更新时间: 2022/10/31 10:59:20
NERoom SDK 默认使用标准音质模式和语音场景。不同应用场景,对于音质、声道、噪声抑制等方面的要求各有不同,您可以根据 App 的场景,通过 setAudioProfile
设置音频属性,实现最优的音质效果。
功能描述
在不同的场景中,用户对于音质、声道、噪声抑制等方面的要求各有不同,例如在音乐直播、在线 KTV 等场景中,需要设置适宜于音乐场景的采样率、码率、流畅度、噪声抑制等参数和能力。NERoom 支持多种音频属性档位设置,适用于不同场景的音质、声道需求,以便您根据实际场景,方便快捷地调整音质属性、在常见场景中实现最优的音质效果。
通过 setAudioProfile
方法的 profile
和 scenario
参数,配置音频 Profile 档位和音频场景。
注意事项
- SDK 支持在通话中根据实际场景变化,动态调用
setAudioProfile
方法。 - 若您通过
setChannelProfile
接口设置房间场景为直播模式,即kNEChannelProfileLiveBroadcasting
,但未调用setAudioProfile
方法设置音频编码属性,或仅设置profile
为kNEAudioProfileDefault
,则 SDK 会自动设置profile
为kNEAudioProfileHighQuality
,且设置scenario
为kNEAudioScenarioMusic
。 - 在初始化 NERoom 后,加入房间前或加入房间后,均可调用
setAudioProfile
接口。
实现方法
通过 setAudioProfile
设置音频属性。
设置音频模式
profile
参数代表不同的音频参数配置(音质),比如采样率、码率和编码模式,包括:
音频 profile 类型 | 描述 |
---|---|
kNEAudioProfileDefault(0) | 默认设置。语音场景下默认为 kNEAudioProfileStandard (1),音乐场景下默认为 kNEAudioProfileMiddleQuality (5)。 |
kNEAudioProfileStandard(1) | 标准音质模式。采样率为 16 kHz、语音编码、单声道、编码码率最大值为 20 Kbps。 |
kNEAudioProfileStandardExtend(2) | 标准扩展模式。采样率为 16 kHz、语音编码、单声道、编码码率最大值为 32 Kbps。 |
kNEAudioProfileMiddleQuality(3) | 中等音质模式。采样率为 48 kHz、音乐编码、单声道、编码码率最大值为 64 Kbps。 |
kNEAudioProfileMiddleQualityStereo(4) | 中等音质模式(立体音)。采样率为 48 kHz、音乐编码、双声道、编码码率最大值为 80 Kbps。 |
kNEAudioProfileHighQuality(5) | 高音质模式。采样率为 48 kHz、音乐编码、单声道、编码码率最大值为 96 Kbps。 |
kNEAudioProfileHighQualityStereo(6) | 高音质模式(立体音)。采样率为 48 kHz、音乐编码、双声道、编码码率最大值为 128 Kbps。 |
设置音频场景
scenario
参数用于设置音频的使用场景,在不同场景中,声音的流畅度、噪声抑制、音质等会根据不同的场景做出优化。目前支持以下类型的场景:
scenario 场景 | 描述 | 音质 |
---|---|---|
kNEAudioScenarioDefault(0) | 默认的音频应用场景(默认为语音场景)。 | kNEAudioProfileDefault |
kNEAudioScenarioSpeech(1) | 语音场景。推荐用于普通的音视频通话场景。 | 推荐使用 kNEAudioProfileMiddleQuality 及以下音质。 |
kNEAudioScenarioMusic(2) | 音乐场景。音乐级别音质设置,高保真、超流畅,推荐用于在线 KTV、在线演唱会、音乐直播、乐器教学等高音质要求的场景。 | 推荐使用 kNEAudioProfileMiddleQualityStereo 及以上音质。 |
典型场景推荐配置
在语聊房、在线 K 歌、1 对 1 音视频通话、多人音视频通话、互动直播等典型场景下,云信推荐使用的音频参数配置如下表示所示。
业务场景 |
profile 设置 |
scenario 设置 |
特性 |
---|---|---|---|
语聊房(主播唱歌或播放伴音的场景) | kNEAudioProfileHighQuality(5) 或 kNEAudioProfileHighQualityStereo(6) | kNEAudioScenarioMusic(2) | 音乐级高清音质,人声和背景音乐声音都有丰富的呈现,可搭配音效功能实现更有趣味性的体验。 |
在线 K 歌 | kNEAudioProfileHighQualityStereo(6) | kNEAudioScenarioMusic(2) | 高音质立体声,适用于音质要求较高的场景,还可以搭配丰富的音效增加娱乐效果。 |
互动直播(主播唱歌或播放伴音的场景) | kNEAudioProfileHighQuality(5) 或 kNEAudioProfileHighQualityStereo(6) | kNEAudioScenarioMusic(2) | 高清音质。可根据实际直播场景选择单双声道,音乐场景推荐使用 Music。 |
音乐教学 | kNEAudioProfileHighQuality(5) | kNEAudioScenarioMusic(2) | 优先保证高清音质,音乐级音频能力。适用于对音质要求较高的场景。 |
|
kNEAudioProfileStandard(1) |
kNERtcAudioScenarioSpeech(1) |
在保证传输流畅的同时,维持高清音质,在弱网环境下优先保证通话稳定、流畅。kNERtcAudioScenarioSpeech(1) 模式下,回声、噪声等环境音过滤效果较好,可以提供更为清晰的人声语音效果。 |
示例代码
在线 K 歌
该场景要求具备高音质立体声,推荐配置如下:
c++NERoomRtcAudioProfileType profile = kNEAudioProfileHighQualityStereo;
NERoomRtcAudioScenarioType scenario = kNEAudioScenarioMusic;
m_pRoomKit->getRoomService()->getPreviewRoomContext()->getPreviewRoomRtcController()->setAudioProfile(profile, scenario);
1 对 1 通话
该场景要求通话流畅,推荐配置如下:
c++NERoomRtcAudioProfileType profile = kNEAudioProfileStandard;
NERoomRtcAudioScenarioType scenario = kNEAudioScenarioSpeech;
m_pRoomKit->getRoomService()->getPreviewRoomContext()->getPreviewRoomRtcController()->setAudioProfile(profile, scenario);
API 参考
方法 | 功能描述 |
---|---|
setAudioProfile |
设置音频编码配置,可以在加入房间后设置 |
setChannelProfile |
设置房间场景 |