马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
🎯要点
- 文本转语音
- 猜测语音视频得分
- 后验分布猜测语音质量
- 移动端语音质量丈量
- 英伟达GPU深度学习语音质量评估
- 秩统计匀称意见得分比力置信区间
- 音频波形质量中分测评
- 转换语音和天然语言相似性评估
JavaScript匀称意见得分
匀称意见得分是体验质量和电信工程范畴中使用的一种度量,体现刺激或体系的团体质量。它是全部单个“预界说范围内的值的算术匀称值,主体根据该值对体系质量的体现给出自己的意见”。此类评级通常在主观质量评估测试中网络,但也可以通过算法估算。其是视频、音频和视听质量评估的常用权衡标准,但不限于这些方式。
匀称意见得分用一个有理数体现,通常在 1-5 的范围内,此中 1 体现感知质量最低,5 体现感知质量最高。其他匀称意见得分范围也是大概的,详细取决于根本测试中使用的评分标准。绝对种别评分标准非经常用,它将差和良好之间的评分映射到 1 到 5 之间的数字,如下表所示。
评分 标签 5 良好 4 精良 3 一样平常 2 差 1 糟糕 \begin{array}{c|c} \hline \text { 评分 } & \text { 标签 } \\ \hline 5 & \text { 良好 } \\ \hline 4 & \text { 精良 } \\ \hline 3 & \text { 一样平常 } \\ \hline 2 & \text { 差 } \\ \hline 1 & \text { 糟糕 } \\ \hline \end{array} 评分 54321 标签 良好 精良 一样平常 差 糟糕
匀称意见得分盘算为人类受试者在主观质量评估测试中对给定刺激举行的单个评分的算术匀称值。因此:
匀称意见得分 = ∑ n = 1 N R n N 匀称意见得分=\frac{\sum_{n=1}^N R_n}{N} 匀称意见得分=N∑n=1NRn
此中 R R R 是 N N N 受试者对给定刺激的个人评分。
匀称意见得分已往源于主观丈量,即听众坐在“安静的房间”中,根据自己对电话通话质量的感受举行评分。这种测试方法已在电话行业使用了数十年,并在 ITU-T P.800 发起书中举行了标准化。它规定“发言者应坐在安静的房间中,房间容积在 30 到 120 立方米之间,混响时间小于 500 毫秒(最幸亏 200-300 毫秒范围内)。房间噪音程度必须低于 30 dBA,且频谱中没有告急峰值。”厥后的 ITU-T 发起书中也同样规定了对其他模式的要求。
获取匀称意见得分评分大概既耗时又费钱,由于须要招募人工评估员。对于各种用例,比方编解码器开发或服务质量监控 目标(须要反复自动评估质量),匀称意见得分分数也可以通过客观质量模子来猜测,这些模子通常是使用人工匀称意见得分评分来开发和练习的。使用此类模子产生的一个标题是,产生的匀称意见得分差别是否对用户来说是显而易见的。比方,当按五分制匀称意见得分量表对图像举行评级时,匀称意见得分便是 5 的图像质量预计会显着优于匀称意见得分便是 1 的图像。与此相反,匀称意见得分便是 3.8 的图像质量是否显着优于匀称意见得分便是 3.6 的图像则并不显着。针对确定用户可感知的数码照片最小匀称意见得分差别举行的研究表明,匀称意见得分差别约为 0.46 才气让 75% 的用户可以或许检测到更高质量的图像。然而,随着用户盼望的厘革,图像质量盼望也会随时间而厘革。因此,使用中分析方法确定的最小可察觉匀称意见得分差别大概会随时间而厘革。
JavaScript音频视频实时通讯5分制匀称意见得分
天生音频和视频分数
- function score(stats) {
- const scores = {};
- const { audio, video } = normalize(stats);
- if (audio) {
- const delay = 20 + audio.bufferDelay + audio.roundTripTime / 2;
- const pl = audio.packetLoss;
- const R0 = 100;
- const Ie = audio.dtx
- ? 8
- : audio.bitrate
- ? clamp(55 - 4.6 * Math.log(audio.bitrate), 0, 30)
- : 6;
- const Bpl = audio.fec ? 20 : 10;
- const Ipl = Ie + (100 - Ie) * (pl / (pl + Bpl));
- const Id = delay * 0.03 + (delay > 150 ? 0.1 * (delay - 150) : 0);
- const R = clamp(R0 - Ipl - Id, 0, 100);
- const MOS = 1 + 0.035 * R + (R * (R - 60) * (100 - R) * 7) / 1000000;
- scores.audio = clamp(Math.round(MOS * 100) / 100, 1, 5);
- }
- if (video) {
- const pixels = video.expectedWidth * video.expectedHeight;
- const codecFactor = video.codec === 'vp9' ? 1.2 : 1.0;
- const delay = video.bufferDelay + video.roundTripTime / 2;
- if (video.frameRate !== 0) {
- const bPPPF = (codecFactor * video.bitrate) / pixels / video.frameRate;
- const base = clamp(0.56 * Math.log(bPPPF) + 5.36, 1, 5);
- const MOS =
- base -
- 1.9 * Math.log(video.expectedFrameRate / video.frameRate) -
- delay * 0.002;
- scores.video = clamp(Math.round(MOS * 100) / 100, 1, 5);
- } else {
- scores.video = 1;
- }
- }
- return scores;
- }
- function normalize(stats) {
- return {
- audio: stats.audio
- ? {
- packetLoss: 0,
- bufferDelay: 50,
- roundTripTime: 50,
- fec: true,
- ...stats.audio,
- }
- : undefined,
- video: stats.video
- ? {
- packetLoss: 0,
- bufferDelay: 0,
- roundTripTime: 50,
- fec: false,
- expectedHeight: stats.video.height || 640,
- expectedWidth: stats.video.width || 480,
- frameRate: stats.video.expectedFrameRate || 30,
- expectedFrameRate: stats.video.frameRate || 30,
- ...stats.video,
- }
- };
- }
- function clamp(value, min, max) {
- return Math.max(min, Math.min(value, max));
- }
- module.exports = { score };
复制代码 👉更新:亚图跨际
|