|
Рекомендация ITU-T G.729 - это CS-ACELP вокодер (Conjugate-structure Algebraic-code-excited Linear-Prediction). Алгоритм основан на модели кодирования с использованием линейного предсказания с возбуждением по алгебраической кодовой книге (CELP-модель). Кодер оперирует с кадрами речевого сигнала длиной 10мс, дискретизованными с частотой 8КГц, что соответствует 80 16-битным отсчетам в линейном законе. Для каждого кадра производится анализ речевого сигнала и выделяются параметры модели (коэффициенты фильтра линейного предсказания, индексы и коэффициенты усиления в адаптивной и фиксированной кодовых книгах). Далее эти параметры кодируются и передаются в канал.
В декодере битовая посылка используется для восстановления параметров сигнала возбуждения и коэффициентов синтезирующего фильтра. Речь восстанавливается путем пропускания сигнала возбуждения через кратковременный синтезирующий фильтр.
Синтезирующий фильтр имеет полюсную передаточную функцию 10-го порядка. Для работы синтезатора основного тона используется адаптивная кодовая книга. В последующем, речь улучшается адаптивной постфильтрацией.
В случае потери передаваемой кодером битовой посылки, исходные данные для речевого синтезатора получаются интерполяцией данных с предыдущих "хороших" кадров, но при этом энергия интерполированного речевого сигнала постепенно уменьшается, что не создает особого дискомфорта у слушателя.
Вокодер обрабатывает кадры речевых сигналов длиной 10мс. Дополнительно, существует задержка длиной 5мс (look-ahead buffer), что в сумме выливается в алгоритмическую задержку 15мс. Также, задержки речевого сигнала в практическом приложении этого алгоритма определяются временем, затрачиваемым на:
- процессы кодирования и декодирования;
- передачу по каналу;
- мультиплексирование при комбинировании аудиоданных с другими видами данных.
Помимо "чистой" рекомендации G.729, существуют "приложения" (annexes) А и B. Приложение А - версия рекомендации, менее требовательная к вычислительной мощности ЦПОС за счет некоторого ухудшения качества кодирования. Алгоритм теоретически должен потреблять на 40-50% меньше временного ресурса, чем "чистая" G.729. Изменения, в основном, касаются следующих частей алгоритма: поиск периода основного тона и поиск параметров возбуждения по алгебраической кодовой книге. Приложение В добавляет в кодер часть классификации входного речевого сигнала. Это, так называемый, VAD - voice activity detector. Классификатор входного сигнала определяет, что в данный момент присутствует на входе - речь или пауза. В моменты пауз битовый поток понижается с 8 кбит/с до 0.8 кбит/с. Более того, в моменты пауз в битовом потоке передается информация о структуре фонового шума, чтобы на стороне декодера у слушателя не возникало дискомфорта от "чистых" пауз между фразами - т.е. присутствует генератор комфортного шума.
Полное описание рекомендации можно найти в документах (или на сайте ITU):
- ITU-T Recommendation G.729, Coding of speech at 8 kbit/s using conjugate-structure algebraic-code-excited linear-prediction (CS-ACLEP);
- ITU-T Recommendation G.729 - Annex A, Coding of speech at 8 kbit/s using conjugate-structure algebraic-code-excited linear-prediction (CS-ACLEP), Annex A: Reduced complexity 8 kbit/s CS-ACELP speech codec;
- ITU-T Recommendation G.729 - Annex B, Coding of speech at 8 kbit/s using conjugate-structure algebraic-code-excited linear-prediction (CS-ACLEP), Annex B: A silence compression scheme for G.729 optimized for terminals conforming to Recommendation V.70
Алгоритм реализован для ЦПОС семейства TMS320C54x фирмы Texas Instruments.
Реализация удовлетворяет следующим требованиям:
- функционирует в режиме реального времени;
- совместима со всеми ЦПОС в рамках семейства TMS320C54x (не используются специфические особенности старших моделей, таких как TMS320C548, TMS320C549 и пр.);
- полностью совместима с требованиями стандарта ITU-T G.729 (приложения А и В) - достигнуто побитовое соответствие тестовым векторам;
- оттестирована в различных режимах работы в составе реальной системы речевой обработки (ip-телефонном шлюзе)
Ресурсоемкость реализации для TMS320C54x (версия 1.3)
Загрузка процессора |
| | G.729.AB кодер | G.729.AB декодер | G.729.A кодер | G729.A декодер |
Вычислительный ресурс (пиковая загрузка на один канал), млн.оп./с. | 10.9 | 2.44 | 10.9 | 2.2 |
13.34 | 13.1 |
Память |
программа, К слов | 9.65 |
таблицы, К слов | 3.13 + 0.06 * N |
данные, К слов | 1.3 + 1.8 * N |
Всего, К слов | 14.08 + 1.86 * N |
Таким образом, на одном процессоре TMS320C549 с 32 килословами внутренней памяти и мощностью 100MIPS можно реализовать независимую обработку семи речевых каналов
Алгоритм реализован для ЦПОС семейства TMS320C62x фирмы Texas Instruments.
Реализация удовлетворяет следующим требованиям:
- функционирует в режиме реального времени;
- полностью совместима с требованиями стандарта ITU-T G.729 (приложения А и В) - достигнуто побитовое соответствие тестовым векторам
Ресурсоемкость реализации для TMS320C62x
Загрузка процессора |
| | G.729.AB кодер | G.729.AB декодер | G.729.A кодер | G729.A декодер |
Вычислительный ресурс (пиковая загрузка на один канал), млн.оп./с. | 13.33 | 2.88 | 13.3 | 2.5 |
16.21 | 15.8 |
Память |
программа, К байт | 90.25 |
таблицы, К байт | 8.4 |
данные, К байт | 1.9 * N + 1.7 * N |
Всего, К байт | 98.65 + 3.6 * N |
Таким образом, на одном процессоре TMS320C6201 мощностью 1600MIPS можно реализовать независимую обработку двенадцати речевых каналов
По следующим звуковым файлам вы сможете оценить качество алгоритма G.729.AB:
Исходная речь | 
|
Речь, упакованная кодером G.729.AB и восстановленная декодером G.729.AB при нулевых потерях | 
|
Можно получить подробную документацию по представленным реализациям алгоритма ITU-T G.729 (Приложения A и B), описание API реализаций, подробные инструкции по встраиванию алгоритма в систему обработки речевых сигналов:
ITU-T G729.AB для TMS320C54x (формат Word)
ITU-T G729.AB для TMS320C62x (формат Word)
Использовались материалы сайта http://www.dsp.sut.ru.
|