Передача речи: выбираем оптимальный кодек
В ходе эксперимента была опрошена группа независимых слушателей, которые проводили оценку качества кодеков. Градация оценок находилась в диапазоне от 1 до 5. Ниже представлены результаты проведенного анкетирования.
Кодирование/декодирование: мужской голос
Рассмотрим кодирование мужского голоса. Согласно данным эксперимента, во всех группах скоростей лучшим по качеству был признан кодек Opus.
Оценка качества кодирования/декодирования мужского голоса
Источник: TrueConf, 2012
В группе 16 Кбит/с явным аутсаудером является кодек g.729a: при кодировании отчетливо слышны искажения, при этом качество звука явно хуже, чем при использовании остальных кодеков.
Оценка качества кодирования/декодирования мужского голоса: расшифровка*
16 кбит/с 24 кбит/с 32 кбит/с Средняя оценка качества Скорость код-я/ декод-я, 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)
Тем не менее, это самый быстрый кодек в данной категории. Наихудшие показатели производительности показал 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, но они не так явно выражены.
Оценка качества кодирования/декодирования женского голоса: расшифровка*
16 кбит/с 24 кбит/с 32 кбит/с Средняя оценка качества Скорость код-я/ декод-я, 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).
Неожиданно g.729a обогнал и SPEEX и iSAC в категории 16 кбит/с, закодировав женский голос без ощутимых артефактов. Победителем во всех категориях снова оказался Opus.
С точки зрения производительности результаты по скорости кодирования/декодирования подобны полученным при работе с мужским голосом.
Итоги и рекомендации
В целом на основе результатов исследования можно сделать вывод о том, что в категории скоростей «более 24-х кбит/с» рекомендуется использовать Opus . Он имеет высокое качество и приемлемую скорость кодирования/декодирования.
В свою очередь, в категории "от 16 до 24 кбит/с" рекомендуется использовать G.722.1 как самый быстрый из всех при хорошем качестве. Если требования к производительности не критичны, то здесь также можно использовать Opus.
По данным эксперимента, в категории "до 16 кбит/с" рекомендуется использовать Opus, который обеспечивает самое высокое качество звука.
Исследование также показало, что кодек SPEEX не рекомендуется использовать в связи с большой вычислительной нагрузкой, а ISAC не стоит использовать при кодировании женского голоса.