Передача речи: выбираем оптимальный кодек
В любых ВКС или VoIP-сервисах при передаче голоса для его шифрования применяют кодеки. Представленные на рынке варианты используются и в определенной степени поддерживаются компаниями-поставщиками услуг, однако, несмотря на многочисленные попытки, к единому стандарту пока прийти не удалось. Какой же кодек в тех или иных условиях справляется быстрее и качественнее? Рассмотрим результаты эксперимента.В ходе эксперимента была опрошена группа независимых слушателей, которые проводили оценку качества кодеков. Градация оценок находилась в диапазоне от 1 до 5. Ниже представлены результаты проведенного анкетирования.
Кодирование/декодирование: мужской голос
Рассмотрим кодирование мужского голоса. Согласно данным эксперимента, во всех группах скоростей лучшим по качеству был признан кодек Opus.
Оценка качества кодирования/декодирования мужского голоса
Источник: TrueConf, 2012
В группе 16 Кбит/с явным аутсаудером является кодек g.729a: при кодировании отчетливо слышны искажения, при этом качество звука явно хуже, чем при использовании остальных кодеков.
Оценка качества кодирования/декодирования мужского голоса: расшифровка*
Средняя оценка качества | Скорость код-я/ декод-я, ms | Средняя оценка качества | Скорость код-я / декод-я, ms | Средняя оценка качества | Скорость код-я/ декод-я | |
SPEEX | 4,0 | 2673 / 382 | 3,75 | 3677 / 354 | 4,5 | 4685 / 303 |
ISAC | 3,0 | 597 / 182 | 4,25 | 543 / 168 | 4,4 | 636 / 189 |
OPUS | 4,5 | 1310 / 96 | 5,0 | 1406 / 167 | 4,75 | 1364 / 142 |
G.729.a | 2,75 | 346 / 78 | - | - | - | - |
G.722.1 | - | - | 4,6 | 26 / 32 | - | - |
* В данном опыте был использован мужской дикторский голос длительностью 40 секунд с частотой дискретизации 16000 Гц (категория wideband)
Источник: TrueConf, 2012
Тем не менее, это самый быстрый кодек в данной категории. Наихудшие показатели производительности показал SPEEX при среднем качестве.
Кодек Opus и другие альтернативы
Варианты возможных HD-рекомендаций кодирования речи для коммуникации в интернете уже более 3 лет обсуждаются на международном уровне в одной из рабочих групп IETF (Internet Engineering Task Force), объединяющей разработчиков различных интернет-приложений и производителей оборудования связи. SPIRIT входит в эту рабочую группу.
В группе 24 Кбит/с аутсайдером по всем параметрам оказался SPEEX. Суммарное время кодирования/декодирования для него достигло 4 секунд. По качеству он занял последнюю позицию. Самым быстрым оказался G.722.1 – он значительно быстрее всех остальных смог справиться с кодированием/декодированием, при этом качество звука высокое. Производительность кодека Opus при изменении битрейта осталась практически прежней, при этом качество звука оказалось неотличимым от эталона. Это делает Opus самым качественным кодеком в данной номинации.
В группе 32 Кбит/с участвовало только 3 кодека. Неизменно лучшим оказался Opus. iSAC и SPEEX показали приблизительно одинаковые результаты по оценке за качество кодирования.
Кодирование/декодирование: женский голос
Рассмотрим данные обработки женского голоса. В первых двух категориях результаты сравнения получились отличными от "мужской" категории.
Оценка качества кодирования/декодирования женского голоса
Источник: TrueConf, 2012
В категориях 16 кбит/с и 24 кбит/с наихудшие результаты по качеству показал iSAC. При сжатии этим кодеком семплов с участием женского голоса на высоких тональностях отчетливо слыше треск. Данные артефакты присутствуют и при использовании SPEEX, но они не так явно выражены.
Оценка качества кодирования/декодирования женского голоса: расшифровка*
Средняя оценка качества | Скорость код-я/ декод-я, ms | Средняя оценка качества | Скорость код-я / декод-я, ms | Средняя оценка качества | Скорость код-я/ декод-я | |
SPEEX | 3,75 | 5451 / 721 | 4,0 | 5849 / 691 | 4,25 | 8537 / 753 |
ISAC | 3,0 | 1022 / 358 | 3,7 | 1191 / 487 | 4,25 | 1203 / 386 |
OPUS | 4,5 | 2512 / 231 | 4,75 | 2618 / 214 | 5,0 | 2611 / 200 |
G.729.a | 3,9 | 611 / 154 | - | - | - | - |
G.722.1 | - | - | 4,4 | 61 / 59 | - | - |
* В данном опыте был использован профессиональный дикторский голос, длительностью 1 мин 13 секунд, с частотой дискретизации 16000 Гц (категория wideband).
Источник: TrueConf, 2012
Неожиданно g.729a обогнал и SPEEX и iSAC в категории 16 кбит/с, закодировав женский голос без ощутимых артефактов. Победителем во всех категориях снова оказался Opus.
С точки зрения производительности результаты по скорости кодирования/декодирования подобны полученным при работе с мужским голосом.
Итоги и рекомендации
В целом на основе результатов исследования можно сделать вывод о том, что в категории скоростей «более 24-х кбит/с» рекомендуется использовать Opus . Он имеет высокое качество и приемлемую скорость кодирования/декодирования.
В свою очередь, в категории "от 16 до 24 кбит/с" рекомендуется использовать G.722.1 как самый быстрый из всех при хорошем качестве. Если требования к производительности не критичны, то здесь также можно использовать Opus.
По данным эксперимента, в категории "до 16 кбит/с" рекомендуется использовать Opus, который обеспечивает самое высокое качество звука.
Исследование также показало, что кодек SPEEX не рекомендуется использовать в связи с большой вычислительной нагрузкой, а ISAC не стоит использовать при кодировании женского голоса.