设置音频属性

更新时间: 2022/10/31 10:59:20

NERoom SDK 默认使用标准音质模式语音场景。不同应用场景,对于音质、声道、噪声抑制等方面的要求各有不同,您可以根据 App 的场景,通过 setAudioProfile 设置音频属性,实现最优的音质效果。

功能描述

在不同的场景中,用户对于音质、声道、噪声抑制等方面的要求各有不同,例如在音乐直播、在线 KTV 等场景中,需要设置适宜于音乐场景的采样率、码率、流畅度、噪声抑制等参数和能力。NERoom 支持多种音频属性档位设置,适用于不同场景的音质、声道需求,以便您根据实际场景,方便快捷地调整音质属性、在常见场景中实现最优的音质效果。

通过 setAudioProfile 方法的 profilescenario 参数,配置音频 Profile 档位和音频场景。

注意事项

  • SDK 支持在通话中根据实际场景变化,动态调用 setAudioProfile 方法。
  • 若您通过 setChannelProfile 接口设置房间场景为直播模式,即 kNEChannelProfileLiveBroadcasting,但未调用 setAudioProfile 方法设置音频编码属性,或仅设置 profilekNEAudioProfileDefault,则 SDK 会自动设置 profilekNEAudioProfileHighQuality,且设置 scenariokNEAudioScenarioMusic
  • 在初始化 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) 优先保证高清音质,音乐级音频能力。适用于对音质要求较高的场景。
  • 1 对 1 通话
  • 语聊房(纯语音聊天场景)
  • 互动直播(纯语音聊天场景)
  • 多人通话/视频会议
  • 小班课/大班课
  • 双师课堂

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 设置房间场景
此文档是否对你有帮助?
有帮助
去反馈
  • 功能描述
  • 注意事项
  • 实现方法
  • 设置音频模式
  • 设置音频场景
  • 典型场景推荐配置
  • 示例代码
  • API 参考