语音质量评估

语音质量主观感受因素
1、外部因素
(1)网络条件:如果网络不好,实际听到的声音会有卡顿;传输是通信的基石,如果传输质量无法保证,那么质量会受到很大影响
(2)环境条件:如果周围环境嘈杂,对方会听到很多噪音,不管用什么算法,都可能会感受到残留的噪音;如果在封闭房间通信,房间的混响条件也会让语音听起来很浑浊,影响对方的听感。
(3)个体的听觉差异:不同人的听力曲线不同,耳朵对不同频段的声音反应也就不一样,这个和年龄段有关系,不同年龄段听域范围不一样。
(4)用户期望:用户在使用APP或终端时,自然而然会对所使用的产品表现出的质量产生期望,这些期望也跟用户的经验有关系。同时,在一些场景,应用若提供了额外信息,也会影响到用户对该次通信质量的期望。
2、语音本身
(1)单听或单说:语音特性会影响语音质量,有人本身音色不好,或者对非母语的语言熟悉程度特性,也会让对方觉得通话质量不高,此外,语音可懂度、声音质量、自然度也和对方能感知的语音质量有密切关系。
(2)双方交互:最主要的主观感受因素是回声,如果听到回声,那么通话质量不好,如果两人同时说话产生语音剪切,通话质量也会不好。

影响云视频会议通信实现的三大因素
1、性能与场景适配选择对语音质量的影响
(1)接入场景:视频会议中允许电信网接入,主要包括PLMN和PSTN,PSTN就是固定电话接入,固定电话可能是模拟电话,也可能是企业里的IP电话;PLMN就是移动通信,现在更多的移动终端本身还支持vowifi 接入。此外,还有最主要的VoIP接入是手机或者电脑上装app的软件接入,这种会和PSTN接入有一些区别。
(2)使用模式:从使用模式来说,用户说话时会涉及不同设备的不同使用方式。比如PSTN接入,用固定电话,要把听筒放在耳边;用VOIP接入,可能使用的电脑,这种叫做免提模式,同时手机也存在免提模式;戴耳机就是耳机的使用模式。
(3)性能与场景适配选择:不同的使用模式会给语音通信应用带来不同效果,效果是由设备本身和场景定义的,就存在性能和场景适配的选择。
手柄模式,听筒离耳朵近,话筒送话器离嘴巴近&

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STOI(Short-Time Objective Intelligibility)是一种用于评估语音质量的客观指标,它可以用来衡量音频的清晰度和可懂性。以下是一份计算STOI值的Python代码示例: ```python import soundfile as sf import numpy as np def stoi(clean_audio, noisy_audio, sample_rate): """Calculate Short-Time Objective Intelligibility (STOI)""" clean, _ = sf.read(clean_audio) noisy, _ = sf.read(noisy_audio) assert clean.shape == noisy.shape, "Both audios should have the same shape" clean = clean / np.max(np.abs(clean)) noisy = noisy / np.max(np.abs(noisy)) frame_size = int(sample_rate * 0.030) # 30ms hop_size = int(sample_rate * 0.010) # 10ms n_frames = int((len(clean) - frame_size) / hop_size) + 1 clean_stft = np.abs(np.array([np.fft.fft(clean[i:i+frame_size], n=frame_size) for i in range(0, len(clean)-frame_size+1, hop_size)])) noisy_stft = np.abs(np.array([np.fft.fft(noisy[i:i+frame_size], n=frame_size) for i in range(0, len(noisy)-frame_size+1, hop_size)])) clean_stft = clean_stft[:, :int(frame_size/2)] noisy_stft = noisy_stft[:, :int(frame_size/2)] eps = np.finfo(float).eps ratio = np.divide(clean_stft, noisy_stft + eps) log_ratio = np.log10(ratio) log_ratio[np.isnan(log_ratio)] = 0 mean_log_ratio = np.mean(log_ratio, axis=1) modified_mean_log_ratio = np.maximum(np.minimum(mean_log_ratio, 1), -1) stoi_val = np.mean(np.power(10, -0.1 * (modified_mean_log_ratio - 1)), axis=0) return stoi_val ``` 使用方法如下: ```python clean_audio = "clean.wav" noisy_audio = "noisy.wav" sample_rate = 16000 stoi_val = stoi(clean_audio, noisy_audio, sample_rate) print("STOI value:", stoi_val) ``` 其中,`clean_audio`和`noisy_audio`分别是干净语音和带噪语音的文件路径,`sample_rate`是采样率。计算结果以0到1之间的值表示STOI值,值越高表示语音质量越好。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值