Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Speex - это кодек сжатия звука, специально настроенный для воспроизведения человеческой речи, а также речевой кодек с бесплатным программным обеспечением, который можно использовать в приложениях VoIP и подкастах . [6] Он основан на алгоритме кодирования речи CELP . [7] Speex заявляет, что свободен от каких-либо патентных ограничений и лицензирован согласно пересмотренной (3 пункта) лицензии BSD . Он может использоваться с форматом контейнера Ogg или напрямую передаваться по UDP / RTP . Его также можно использовать с FLV формат контейнера. [8]

Разработчики Speex рассматривают свой проект как дополнение к проекту сжатия звука общего назначения Vorbis .

Speex - это формат с потерями , т. Е. Качество постоянно ухудшается, чтобы уменьшить размер файла.

Проект Speex был создан 13 февраля 2002 года. [9] Первые разрабатываемые версии Speex были выпущены под лицензией LGPL , но начиная с версии 1.0 beta 1 Speex выпускается под версией Xiph (пересмотренной) лицензии BSD. [10] Speex 1.0 был анонсирован 24 марта 2003 года, после года разработки. [11] Последняя стабильная версия кодировщика и декодера Speex - 1.2.0. [3]

Xiph.Org теперь считает Speex устаревшим; его преемником является более современный кодек Opus , который превосходит его по производительности во многих областях, за исключением самых низких частот дискретизации. [12]

Описание [ править ]

Speex нацелен на передачу голоса по IP (VoIP) и сжатие на основе файлов. Целью проектирования было создание кодека, который был бы оптимизирован для высококачественной речи и низкой скорости передачи данных. Для этого кодек использует несколько скоростей передачи данных и поддерживает сверхширокополосный ( частота дискретизации 32  кГц ), широкополосный (частота дискретизации 16 кГц) и узкополосный (качество телефона, частота дискретизации 8 кГц). Поскольку Speex был разработан для VoIP вместо использования сотового телефона, кодек должен быть устойчивым к потерянным пакетам, но не к поврежденным. Все это привело к выбору линейного предсказания с кодовым возбуждением (CELP) в качестве метода кодирования для использования в Speex. [7]Одна из основных причин заключается в том, что CELP уже давно доказал, что может выполнять свою работу и хорошо масштабироваться как для низких скоростей передачи (о чем свидетельствует DoD CELP @ 4,8 кбит / с), так и для высоких скоростей передачи (как с G.728 @ 16 кбит / с). / с). Основные характеристики можно резюмировать следующим образом:

  • Бесплатное программное обеспечение / с открытым исходным кодом , без патентов и лицензионных отчислений .
  • Интеграция узкополосного и широкополосного каналов в одном потоке битов.
  • Доступен широкий диапазон скоростей передачи данных (от 2 кбит / с до 44 кбит / с).
  • Динамическое переключение скорости передачи данных и переменная скорость передачи данных (VBR).
  • Обнаружение голосовой активности (VAD, интегрировано с VBR) (не работает с версии 1.2).
  • Переменная сложность.
  • Сверхширокополосный режим на 32 кГц (до 48 кГц).
  • Опция кодирования стерео по интенсивности .

Особенности [ править ]

Частота выборки
Speex в основном разработан для трех различных частот дискретизации: 8 кГц (такая же частота дискретизации для передачи телефонных вызовов), 16 кГц и 32 кГц. Они соответственно называются узкополосными, широкополосными и сверхширокополосными.
Качественный
Кодирование Speex контролируется большую часть времени параметром качества, который находится в диапазоне от 0 до 10. При работе с постоянной скоростью передачи данных (CBR) параметр качества является целым числом , а для переменной скорости передачи данных (VBR) параметр является вещественное число (с плавающей запятой ).
Сложность (переменная)
С Speex можно изменять разрешенную для кодировщика сложность. Это делается путем управления тем, как выполняется поиск с целым числом от 1 до 10, аналогично параметрам от -1 до -9 в утилитах сжатия gzip . При нормальном использовании уровень шума на уровне сложности 1 на 1-2 дБ выше, чем на уровне сложности 10, но требования к ЦП для сложности 10 примерно в пять раз выше, чем для сложности 1. На практике лучший компромисс между сложностью 2 и 4, [13] хотя более высокие настройки часто полезны при кодировании неречевых звуков, таких как тоны DTMF , или если кодирование не в реальном времени.
Переменная скорость передачи данных (VBR)
Переменная скорость передачи данных (VBR) позволяет кодеку динамически изменять скорость передачи данных, чтобы адаптироваться к «сложности» кодируемого звука. В примере Speex звуки, подобные гласным, и высокоэнергетические переходные процессы требуют более высокой скорости передачи битов для достижения хорошего качества, в то время как фрикативные звуки (например, звуки s и f) могут быть адекватно кодированы с меньшим количеством бит. По этой причине VBR может обеспечить более низкую скорость передачи данных при том же качестве или более высокое качество при определенной скорости передачи данных. Несмотря на свои преимущества, VBR имеет три основных недостатка: во-первых, указание только качества не дает никаких гарантий относительно окончательной средней скорости передачи данных. Во-вторых, для некоторых приложений реального времени, таких как передача голоса по IP(VoIP) учитывается максимальная скорость передачи данных, которая должна быть достаточно низкой для канала связи. В-третьих, шифрование речи с кодировкой VBR не может гарантировать полную конфиденциальность, поскольку фразы все еще можно идентифицировать, по крайней мере, в контролируемой настройке с помощью небольшого словаря фраз [14] , анализируя характер изменения скорости передачи данных.
Средняя скорость передачи данных (ABR)
Средняя скорость передачи данных решает одну из проблем VBR, поскольку она динамически регулирует качество VBR для достижения определенной целевой скорости передачи данных. Поскольку качество / скорость передачи данных регулируются в реальном времени (разомкнутый цикл), общее качество будет немного ниже, чем качество, полученное при кодировании в VBR с точно правильной настройкой качества для достижения целевой средней скорости передачи данных.
Обнаружение голосовой активности (VAD)
Если эта функция включена, обнаружение голосовой активности определяет, является ли кодируемый звук речью или тишиной / фоновым шумом. VAD всегда неявно активируется при кодировании в VBR, поэтому этот параметр полезен только при работе без VBR. В этом случае Speex обнаруживает периоды отсутствия речи и кодирует их с помощью достаточного количества бит для воспроизведения фонового шума. Это называется « генерацией комфортного шума » (СПГ). Последняя версия VAD работала нормально - 1.1.12, начиная с версии 1.2 она была заменена простым обнаружением любой активности.
Прерывистая передача (DTX)
Прерывистая передача - это дополнение к работе VAD / VBR, которое позволяет полностью прекратить передачу, когда фоновый шум является стационарным. В файле для каждого пропущенного кадра используется 5 бит (что соответствует 250 бит / с).
Улучшение восприятия
Улучшение восприятия - это часть декодера, который при включении пытается уменьшить (восприятие) шума, создаваемого процессом кодирования / декодирования. В большинстве случаев улучшение восприятия делает звук дальше от оригинала объективно (отношение сигнал / шум), но в конечном итоге он все равно звучит лучше (субъективное улучшение).
Алгоритмическая задержка
Каждый кодек вносит задержку при передаче. Для Speex эта задержка равна размеру кадра плюс некоторый «упреждающий просмотр», необходимый для обработки каждого кадра. В узкополосном режиме (8 кГц) задержка составляет 30 мс, в то время как для широкополосного (16 кГц) задержка составляет 34 мс. Эти значения не учитывают процессорное время, необходимое для кодирования или декодирования кадров.

Приложения [ править ]

Сравнение аудиокодеков для речи.

Существует большая база приложений, поддерживающих кодек Speex. Примеры включают:

  • Потоковые приложения, такие как телеконференции (например, TeamSpeak , Mumble )
  • Системы VoIP (например, Asterisk )
  • Видеоигры (например, Xbox Live , [15] Civilization 4 , вокальные треки DropMix , ...)
  • Приложения для обработки звука.

Большинство из них основаны на фильтре DirectShow или кодеке OpenACM (например, Microsoft NetMeeting ) в Microsoft Windows или на эталонной реализации Xiph.org, libvorbis, в Linux (например, Ekiga ). Также есть плагины для многих аудиоплееров. См. Дополнительную информацию на странице плагинов и программ на сайте speex.org. [16]

Типом носителя для Speex является audio / ogg, когда он содержится в Ogg, и audio / speex (ранее audio / x-speex) при транспортировке через RTP или без контейнера.

Армия Соединенных Штатов «s Land Warrior система, разработанная General Dynamics , также использует Speex для VoIP на EPLRS радио , разработанное компанией Raytheon .

The Ear Bible [17] - это наушники с одним ухом со встроенным проигрывателем Speex с 1 ГБ флэш-памяти [18], предварительно загруженными с записью Новой американской стандартной Библии .

ASL безопасность и Безопасность в [19] Linux на основе программного обеспечение VIPA ОС [20] , которая используется в ярусной системе оповещения и системах аварийного оповещения на крупных международных авиатранспортных узлах и железнодорожных сети.

Проект Rockbox использует Speex для голосового интерфейса. Он также может воспроизводить файлы Speex на поддерживаемых проигрывателях, таких как Apple iPod или iRiver H10.

Портативное устройство сбора данных Vernier LabQuest [21] для естественнонаучного образования использует Speex для голосовых аннотаций, создаваемых студентами и учителями с использованием встроенного или внешнего микрофона.

В настоящее время мобильное приложение Google для iPhone включает Speex. [22] Также было высказано предположение, что новое приложение голосового поиска Google для iPhone использует Speex для передачи голоса на серверы Google для перевода. [23]

Adobe Flash Player поддерживает Speex, начиная с Flash Player 10.0.12.36, выпущенного в октябре 2008 года. [24] Из-за некоторых ошибок в Flash Player первой рекомендованной версией для поддержки Speex является 10.0.22.87 и более поздние версии. Speex в Flash Player может использоваться для обоих видов связи, через Flash Media Server или P2P . Speex можно декодировать или преобразовать в любой формат, в отличие от звука Nellymoser , который был единственным речевым форматом в предыдущих версиях Flash Player. [25] [26] Speex может также использоваться в формате контейнера Flash Video (.flv), начиная с версии 10 Спецификации формата видеофайла (опубликованной в ноябре 2008 г.). [27]

Диктофон JavaSonics ListenUp [28] использует Speex для сжатия голосовых сообщений, которые записываются в браузере и затем загружаются на веб-сервер. Основные приложения - языковая подготовка, транскрипция и социальные сети.

Speex используется в качестве алгоритма сжатия голоса в голосовом помощнике Siri на iPhone 4S . [29] Поскольку преобразование текста в речь происходит на серверах Apple, кодек Speex используется для минимизации пропускной способности сети.

См. Также [ править ]

  • Сравнение форматов кодирования аудио
  • Opus (аудиоформат) - преемник Speex

Источники [ править ]

В этой статье используется материал из Руководства по кодекам Speex, авторское право © Jean-Marc Valin и лицензионное на условиях GFDL .

Ссылки [ править ]

  1. ^ «PlayOgg! - FSF - Фонд свободного программного обеспечения» . 2010-03-17 . Проверено 1 октября 2013 .
  2. ^ Жан-Марк Валин (2009). "people.xiph.org - личное интернет-пространство xiphs - Жан-Марк Валин" . Xiph.Org . Проверено 11 сентября 2009 .
  3. ^ a b "Speex News" . Фонд Xiph.Org . Проверено 11 апреля 2017 .
  4. ^ "Руководство по кодеку Speex - Лицензия Speex" . Фонд Xiph.Org . Проверено 1 сентября 2009 .
  5. ^ «Образец Xiph.Org варианта лицензии BSD» . Фонд Xiph.Org . Проверено 29 августа 2009 .
  6. ^ Xiph.Org Speex: бесплатный кодек для свободы слова , проверено 1 сентября 2009 г.
  7. ^ a b Xiph.Org Introduction to CELP Coding , дата обращения 01.09.2009.
  8. ^ Спецификация формата Adobe FLV , получено 18 апреля 2016 г.
  9. ^ Xiph.org Выпуски Speex - до 1.0 - НОВОСТИ и журнал изменений в speex-0.0.1.tar.gz , дата обращения 01.09.2009.
  10. ^ Xiph.Org Speex FAQ - Под какой лицензией распространяется Speex? , Проверено 1 сентября 2009 г.
  11. ^ Xiph.Org (2003-03-24) Speex достигает 1.0; Xiph.Org теперь является некоммерческой организацией 501 (c) (3) , дата обращения 01.09.2009.
  12. ^ [1] Домашняя страница Speex, получено 11 апреля 2017 г.
  13. ^ Описание кодека
  14. ^ Найди меня, если сможешь: Раскрытие разговорных фраз в зашифрованных разговорах VoIP (Чарльз В. Райт, Лукас Баллард, Скотт Э. Коул, Фабиан Монроуз, Джеральд М. Массон)
  15. Как объявил Ральф Джайлс,сопровождающий кодеков Theora , в эпизоде ​​29 LugRadio.
  16. ^ «Бесплатный кодек для свободы слова» . Speex . Проверено 29 декабря 2012 .
  17. ^ Lascelles, LLC. «Самая удобная в мире Аудио Библия» . Ушная Библия . Проверено 29 декабря 2012 .
  18. ^ Lascelles, LLC. «Поддержка» . Ушная Библия . Проверено 29 декабря 2012 .
  19. ^ "PA / VA, Программное обеспечение PSIM и системы управления станциями> Безопасность и защита ASL" . Asl-control.co.uk . Проверено 29 декабря 2012 .
  20. ^ IPAM 400: Интеллектуальный усилитель публичных адресов на базе IP - Руководство пользователя
  21. ^ "LabQuest 2> Vernier Software & Technology" . Vernier.com. 2012-05-23 . Проверено 29 декабря 2012 .
  22. ^ «Юридические уведомления» . Google Inc . Проверено 5 декабря 2014 .
  23. ^ Деконструкция голосового поиска Google Mobile на iPhone
  24. ^ Adobe (2008) Flash Player 10 Datasheet , дата обращения 1 сентября 2009 г.
  25. ^ AskMeFlash.com ( 10 мая 2009 г.) Speex for Flash ,последнее посещение - 12августа 2009 г.
  26. ^ AskMeFlash.com (2009-05-10) Speex против NellyMoser Архивированных 2009-04-15 в Wayback Machine , Проверено 2009-08-12
  27. ^ Adobe Systems Incorporated (ноябрь 2008 г.). «Спецификация формата видеофайла, версия 10» (PDF) . Adobe Systems Incorporated. Архивировано из оригинального (PDF) 23 сентября 2010 года . Проверено 5 декабря 2014 . Цитировать журнал требует |journal=( помощь )
  28. ^ Фил Берк. «Аплет записи голоса JavaSonics ListenUp для Java, который загружает сообщения на веб-сервер» . Javasonics.com . Проверено 29 декабря 2012 .
  29. ^ «Апплидиум - Новости» . Applidium.com. Архивировано из оригинала на 2011-11-16 . Проверено 29 декабря 2012 .

Внешние ссылки [ править ]

  • RFC 5574 - Формат полезной нагрузки RTP для кодека Speex
  • Официальная домашняя страница Speex
  • Страница плагина и программного обеспечения
  • JSpeex - это порт Speex на платформу Java
  • NSpeex - это перенос Speex на платформу .NET и Silverlight на основе JSpeex.
  • CSpeex - это перенос Speex на платформу .NET на основе JSpeex
  • RFC 5334 - Типы носителей Ogg
  • http://dirac.epucfe.eu/projets/wakka.php?wiki=P12AB10 - Speex Encoder Player (César MBUMBA)