文档中心
Old_Live_Room 互动视频
文档中心
体验 App
SDK 中心
API 中心
常见问题
代码市场
进入控制台
立即注册
登录
中文站 English
  • 文档中心
  • 互动视频
  • 常见问题
  • 声音问题

声音问题

更新时间:2022-08-18 14:29

1 观众拉到的音乐声效果不好

场景:当一个设备外放音乐,另一个手机/PC采集推流,对方播放出来的音质效果不好。

原因:音乐先被播放出来,就已经不是原声的音乐效果,如果再被手机采集进去,这个音乐声跟随噪音有可能会被降噪处理,同时,如果不是在手机的采集范围之内的话,这种效果很难保证效果

推荐:用我们的混音接口来混入背景音乐,这样音乐的数据是原声的,同时声音也不会经过处理,这样的效果是最好的。

2 进入直播间和连麦后听主播的声音大小不一致

  1. 作为观众进直播间,不需要用到麦克风,只需要播放音量,因此听到的声音音量是媒体音量,如正常手机播放音乐的音量一样。

  2. 当连麦后,用户从观众变为了主播,需要采集声音,此时就是双工的模式,即通话音量,如打电话一般。

原因: 手机的媒体音量和通话音量是有不同的音量的,如果两者的音量相差较大,就会感觉到进入直播间听到的声音和上麦后的声音 音量大小有区别,这是正常的;

处理:将手机音量调为一致即可。

3 两个SDK切换的时候,会出现推流没有声音的问题

原因: 系统的音频设备只有一个,当两个SDK切换的时候,如果一方SDK没有及时释放音频设备,或者是异步释放的话,另一方SDK刚启动音频设备,就会被前一方SDK释放掉了。

解决:首先要确保一方SDK释放完了,再去启动另一方SDK。 即构SDK提供音视频设备释放了的接口onAvEngineStop,在需要切换到另一方SDK的时候,先确认收到了这个接口回调,如果没有收到,先等待onAvEngineStop收到了之后再去切换SDK。

4 在使用媒体播放器播放背景音乐的时候,如何调节人声或背景音乐的声音大小

1、通过mediaplayer(媒体播放器)混入背景音乐的时候,可以通过接口 setVolume(int volume) 直接设定播放器的播放声音,和背景音乐音量

2、通过 setCaptureVolume(int volume) 接口,可以调节采集人声说话的声音大小

3、通过 setPlayVolume(int volume)接口,可以调节播放端拉流的声音大小

5 两个手机离得近,是否有办法消除回音

两个人太近时,声音是通过网络绕回来的,失真是一方面,网络延迟不可靠也是一方面。 啸叫是因为太近时噪音不断加强引发,如果按照啸叫模型去降噪,又会有模型不够准确的问题。 这块比较复杂,因为实际使用场景不会碰到,所以没做的那么复杂。

建议:主播直播的时候带耳机,或者主播和观众离远一点,比如2米左右。

6 有回声时如何处理?

原因:回声问题通常是由对方麦克风设备回采,导致这边听到了自己的声音。

解决:

  1. 佩戴耳机即可规避该问题。
  2. 确保对话的双方的设备距离较远。
  3. Windows 平台上,检查在麦克风属性里是否已勾选 监听麦克风 选项,如有,取消该勾选。
  4. 如果使用音频外部采集,SDK不会进行回声消除,需要业务侧塞给SDK的数据已经是经过回声消除过的数据。
  5. 回声消除的相关 API。

硬件回声消除相关设置方法:消除的是系统声音或其他软件播放的声音

setAudioDeviceMode 接口, 需在 initsdk 前设置

//通话模式(voip),消除系统声音或其它软件播放出来的声音
ZEGOAPI_AUDIO_DEVICE_MODE_COMMUNICATION = 1, 

软件回声消除:消除的是B回传的A的声音

enableAEC 设置为TRUE 建议在推流前设置

备注: iOS 默认不开启软件回声消除(enableAEC (因为IOS系统的回声消除做的比较好)

Android 是默认开启软件回声消除 (enableAEC) (因为安卓的系统回声消除做的相对没那么好,所以会默认也是开启软件回声消除)

但是由此引发一个问题,因为 iOS 系统无法区分使用耳机孔的(3.5mm的)是外置声卡还是耳机。如果此时使用耳机孔的是外置声卡,这样B采集的时候会采集到 A+BGM 的声音,再回给 A。

所以此时 iOS 端就需要使用到 enableAECWhenHeadsetDetected 的接口设置为 FALSE,表示耳机插入状态下不做回声消除。

7 有噪音/啸叫如何处理?

Zego 的 SDK 默认是做了噪声抑制的,如果依然有噪声,可以检查:

  1. 保持两台手机的距离在2米及以上。
  2. 佩戴耳机验证是否仍然有噪音/啸叫。
  3. 更换测试场所,可以到相对安静的地方测试看是否正常。
  4. 是否开启了音频外部采集的功能,当使用音频外部采集时,噪声需要客户自己去做降噪处理。

8 Web 跟 App 连通时听不到声音怎么办?

Web 端和 App 端的音频编码格式不一样,请检查:

  1. App 端的 SDK 版本是2018年8月及8月以后的 SDK,通过 SDK version的方法就可以获取到 SDK 版本号。
  2. 联系即构技术支持确认后台转码是否配置了。

9 iOS 系统的背景音被关闭

iOS 在 loginRoom 或者 logoutRoom 的时候收到系统的提示:

[AVAudioSession setActive:withOptions:error:]: Deactivating an audio session that running I/O. 
All I/O should be stopped or paused prior to deactivating the audio session. 

同时系统的背景音也被关闭了。
这是因为:
ZegoSDK 启动的时候,会抢占音频设备,ZegoSDK 释放的时候,会释放音频设备,如果此时这个应用正在使用其他的音频资源,比如播放背景音,就会收到系统的这个提示,此时背景音乐也可能会被关闭了。

在 initSDK 之前调用 setConfig 设置 AudioSession 的模式为 active 就可以解决。

对于 ZegoLiveRoom.framework:

NSString *config = [NSString stringWithFormat:@"%s=true",kZegoConfigKeepAudioSesionActive.UTF8String];
[ZegoLiveRoomApi setConfig:config];

对于 ZegoAudioRoom.framework:

NSString *config = [NSString stringWithFormat:@"%s=true", kZegoAudioRoomConfigKeepAudioSesionActive.UTF8String];
[ZegoAudioRoomApi setConfig:config]; 

10 Windows 系统开启了双声道采集和双声道编码,上麦说话时,其他人只能听到单声道?

系统开启了双声道采集和双声道编码,播放时会采用双声道播放。

如果采集时只采集了单声道,其他人也只能听到单声道,Windows 系统下可将麦克风采集端的声道数进行调整,如图所示将“2 通道”调整为“1 通道”。

11 如何根据场景选择语音检测的不同接口?

如下介绍不同语音检测接口的几种使用场景:

  • 场景一:节省流量
    当您希望没有语音活动时不发送数据,达到节省流量的目的,可以使用如下方法:
    调用 ZegoLiveRoom 类下的 enableVAD 接口开启语音活动检测功能和 enableDTX 接口开启离散音频包发送。两个接口配合使用,在关闭麦克风或者静音的状态下,达到推流中检测为静音的数据包不发送的功能。
  • 场景二:实时判断 当您希望在获取音频音量变化的同时,判断这个音频是否包含语音信息,可以使用如下方法:
    调用 ZegoSoundLevelMonitor 下的 enableVAD 接口开启音浪回调检测 VAD,可在 onCaptureSoundLevelUpdate 回调中通过 vad 参数判断对应的流是否包含正常语音,以此来决定是否显示音量变化。
  • 场景三:数据统计 当您需要判断麦克风是否有持续的语音输入,并统计一定周期内的检测结果时,可以使用如下方法:
    通过稳态语音检测功能可以判断一定时间内是否有人对着麦克风说话,用于检测采集后或音频前处理后的音频数据为噪声还是正常声音。该功能是通过统计固定窗口时间内所有的语音判断的结果,人声达到一定比率后才判定为人声。
    先调用 setAudioVADStableStateCallback 接口设置检测语音状态的回调,再调用 enableCapturedAudioVADStableStateMonitor 接口开启采集后的音频数据语音状态检测(包括麦克风采集和外部音频采集,检测周期均为 3 秒)和 enableAudioPrepVADStableStateMonitor 接口开启音频外部预处理后的音频数据的语音状态检测(检测周期均为 3 秒)。
    通过 enableCapturedAudioVADStableStateMonitor 和 enableAudioPrepVADStableStateMonitor 接口回调中 state 参数,判断检测的音频数据是噪声还是正常语音。
本篇目录
  • 免费试用
  • 提交工单
    咨询集成、功能及报价等问题
    电话咨询
    400 1006 604
    咨询客服
    微信扫码,24h在线

    联系我们

  • 文档反馈