Существует ли формула для оценки качества звука WebRTC как отличного, хорошего, удовлетворительного или плохого?

Мне удалось получить различную статистику (Jitter, RTT, потерянный пакет и т. Д.) Аудиовызова WebRTC с помощью API RTCPeerConnection.getStats().

Мне нужно оценить качество звонков в целом как "Отлично", "Хорошо", "Плохо" или "Плохо".

Есть ли формула, которая использует статистику WebRTC для получения общего рейтинга? если нет, то какие статистические данные WebRTC мне следует дать больше веса?

2 ответа

Решение

В итоге мы использовали алгоритм MOS (средняя оценка) для расчета показателя качества голосовых вызовов.

Вот формула, которую мы использовали -

Возьмите среднюю задержку, добавьте дрожание, но удвойте влияние на задержку, а затем добавьте 10 для задержек протокола EffectiveLatency = ( AverageLatency + Jitter * 2 + 10)

Реализуйте базовую кривую - вычтите 4 для значения R с задержкой 160 мс (в оба конца). Все, что превышает это, получает гораздо более агрессивный вывод, если EffectiveLatency < 160, тогда R = 93,2 - (EffectiveLatency / 40), иначе R = 93,2 - (EffectiveLatency - 120) / 10

Теперь давайте вычтем 2,5 R значения на процент потери пакетов R = R - (PacketLoss * 2.5)

Преобразуйте R в значение MOS (это известная формула). MOS = 1 + (0,035) * R + (.000007) * R * (R-60) * (100-R)

Мы нашли формулу из https://www.pingman.com/kb/article/how-is-mos-calculated-in-pingplotter-pro-50.html

MOS (средняя оценка мнения) — это то, что вам нужно для оценки качества сети. Этот алгоритм является частью крошечной библиотеки webrtc-issue-detector , поэтому вы можете использовать его на стороне клиента для анализа и мониторинга результатов getStats(). Библиотека также выявляет проблемы, которые могут повлиять на качество мультимедиа, например проблемы с процессором клиента, проблемы с сетью или сервером.

Другие вопросы по тегам