Кіріспе
Speex – адам сөйлеуін қайта жаңғыртуға арналған аудио қысылу кодегі, сондай-ақ IP дауыстық байланыс қолданбалары мен подкасттарда қолданылуы мүмкін ашық кодты бағдарламалық қамтамасыз ету. Ол кодты тікелей қоздыру арқылы сызықтық болжамды сөйлеуді кодтау алгоритміне негізделген. Оның жасаушылары Speex патенттік шектеулерден бос екенін және қайта қарастырылған (3-тармақты) BSD лицензиясымен лицензияланатынын мәлімдейді. Оны Ogg контейнер форматымен немесе тікелей UDP/RTP арқылы таратуға болады. Сондай-ақ FLV контейнер форматында да қолданылуы мүмкін. Speex жасаушылары өз жобаларын Vorbis жалпы мақсаттағы аудио қысылу жобасына толықтыру ретінде қарастырады. Speex – дерек жоғалтатын формат, яғни файл көлемін кішірету үшін сапасы қайтымсыз төмендейді. Speex жобасы 2002 жылдың 13 ақпанында құрылған. Speex-тің алғашқы даму нұсқалары LGPL лицензиясымен шығарылды, бірақ 1.0 бета 1 нұсқасынан бастап Speex Xiph-тің (қайта қарастырылған) BSD лицензиясының нұсқасымен шығарылды. Speex 1.0 бір жылдық дамудан кейін 2003 жылдың 24 наурызында жарияланды. Speex кодектеушісі мен декодерінің соңғы тұрақты нұсқасы 1.2.1.
Speex is an audio compression codec specifically tuned for the reproduction of human speech and also a free software speech codec that may be used on voice over IP applications and podcasts. It is based on the code excited linear prediction speech coding algorithm. Its creators claim Speex to be free of any patent restrictions and it is licensed under the revised (3 clause) BSD license. It may be used with the Ogg container format or directly transmitted over UDP/RTP. It may also be used with the FLV container format. The Speex designers see their project as complementary to the Vorbis general purpose audio compression project. Speex is a lossy format, i. e. quality is permanently degraded to reduce file size. The Speex project was created on February 13, 2002. The first development versions of Speex were released under LGPL license, but as of version 1.0 beta 1, Speex is released under Xiph's version of the (revised) BSD license. Speex 1.0 was announced on March 24, 2003, after a year of development. The last stable version of Speex encoder and decoder is 1.2.1.
Сипаттама
Speex IP арқылы дауыс беруге (VoIP) және файлдық сығылуға бағытталған. Дизайн мақсаттары – жоғары сапалы сөйлеуді және төмен бит жылдамдығын қамтамасыз ететін кодек жасау болды. Бұл мақсатқа жету үшін кодек бірнеше бит жылдамдықтарын қолданады және ультра кең жолақты (32 кГц үлгі алу жылдамдығы), кең жолақты (16 кГц үлгі алу жылдамдығы) және тар жолақты (телефон сапасы, 8 кГц үлгі алу жылдамдығы) қолдайды. Speex ұялы телефонға емес, VoIP үшін жасалғандықтан, кодек жоғалған пакеттерге төзімді болуы керек, бірақ бұзылған пакеттерге емес. Осының нәтижесінде Speex үшін кодты ынталандырылған сызықтық болжау (CELP) кодтау әдісі ретінде таңдау жасалды. Дегенмен, жоғары параметрлер DTMF тондары сияқты сөйлеу емес дыбыстарды кодтағанда немесе кодтау нақты уақытта орындалмағанда пайдалы болуы мүмкін. Өзгермелі бит жылдамдығы (VBR) Өзгермелі бит жылдамдығы (VBR) кодекке кодталатын аудионың "қиындығына" бейімделу үшін бит жылдамдығын динамикалық түрде өзгертуге мүмкіндік береді. Мысалы, Speex-те дауыстылар мен жоғары энергиялы импульстар жақсы сапаға жету үшін жоғары бит жылдамдығын қажет етеді, ал фрикативтер (мысалы, «с» және «ф» дыбыстары) азырақ битпен жеткілікті түрде кодталуы мүмкін. Осы себепті VBR бірдей сапада төменгі бит жылдамдығына немесе белгілі бір бит жылдамдығы үшін жақсырақ сапаға қол жеткізе алады. Артықшылықтарына қарамастан, VBR-дің үш негізгі кемшілігі бар: біріншіден, тек сапаны көрсету арқылы соңғы орташа бит жылдамдығына кепілдік берілмейді. Екіншіден, IP арқылы дауыс сияқты кейбір нақты уақыт қолданбалары үшін ең маңыздысы – максималды бит жылдамдығы, ол байланыс арнасы үшін жеткілікті төмен болуы керек. Үшіншіден, VBR кодталған сөйлеуді шифрлау толық құпиялылықты қамтамасыз етпеуі мүмкін, себебі фразаларды, кем дегенде шектеулі фразалық сөздікпен бақыланатын жағдайда, бит жылдамдығының өзгеру үлгісін талдау арқылы анықтауға болады. Орташа бит жылдамдығы (ABR) Орташа бит жылдамдығы VBR-дің бір мәселесін шешеді, өйткені ол белгілі бір мақсатты бит жылдамдығына жету үшін VBR сапасын динамикалық түрде реттейді. Сапа/бит жылдамдығы нақты уақытта (ашық циклда) реттелгендіктен, жалпы сапа мақсатты орташа бит жылдамдығына сәйкес келетін дәл сапа параметрінмен VBR-де кодтау арқылы алынғаннан сәл төмен болады. Дауыстық белсенділікті анықтау (VAD) Қосылған кезде, дауыстық белсенділікті анықтау кодталатын аудионың сөйлеу немесе үнсіздік/фондық шу екенін анықтайды. VAD әрқашан VBR-де кодтау кезінде автоматты түрде қосылады, сондықтан бұл опция VBR емес операцияларда ғана пайдалы. Бұл жағдайда Speex сөйлеуге қатысы жоқ кезеңдерді анықтайды және оларды фондық шуды қайта жаңғырту үшін жеткілікті биттермен кодтайды. Бұл «жайлы шуды жасау» (CNG) деп аталады. VAD-тің соңғы нұсқасы 1.1.12 жақсы жұмыс істеді, ал 1.2 нұсқасынан бастап ол кез келген белсенділікті анықтаумен ауыстырылды. Ұзындығы үздірілмейтін беру (DTX) Ұзындығы үздірілмейтін беру – VAD/VBR операциясына қосымша, ол фондық шу тоқтаған кезде беруді толығымен тоқтатуға мүмкіндік береді. Файлда әрбір жоғалған кадр үшін 5 бит қолданылады (250 бит/с-қа сәйкес). Қабылдауды жақсарту Қабылдауды жақсарту – декодердің бір бөлігі, ол қосылған кезде кодтау/декодтау процесінен туындаған шуды азайтуға тырысады. Көп жағдайда қабылдауды жақсарту дыбысты объективті түрде бастапқыдан (сигнал/шу қатынасы) алыстатады, бірақ соңында ол жақсырақ естіледі (субъективті жақсарту). Алгоритмдік кешігу Кез келген кодек беруде кешігуді тудырады. Speex үшін бұл кешігу кадр өлшеміне тең, сонымен қатар әрбір кадрды өңдеу үшін қажетті «алдын ала қарау» мөлшеріне тең. Тар жолақты (8 кГц) операцияда кешігу 30 мс, ал кең жолақты (16 кГц) операцияда кешігу 34 мс құрайды. Бұл мәндер кадрларды кодтау немесе декодтау үшін CPU уақытын ескермейді.
Қолданбалар
Speex кодегін қолдайтын көптеген қосымшалар бар. Мысалдарға мыналар жатады: телеконференция сияқты ағынмен жүзеге асырылатын қосымшалар (мысалы, TeamSpeak, Mumble), VoIP жүйелері (мысалы, Asterisk), бейне ойындар (мысалы, Xbox Live, Civilization 4, DropMix дауыстық тректері), аудио өңдеу қосымшалары. Олардың көпшілігі Microsoft Windows-та DirectShow сүзгісіне немесе OpenACM кодегіне (мысалы, Microsoft NetMeeting) негізделген, ал Linux-та Xiph.org ұйымының эталондық нұсқасы – libvorbis (мысалы, Ekiga). Сонымен қатар, көптеген аудио ойнатқыштарға арналған қосымшалар бар. Speex-ке қатысты қосымшалар мен бағдарламалық жасақтама туралы толық ақпаратты speex.org сайтынан таба аласыз. Speex медиа форматы Ogg контейнерінде болғанда audio/ogg, ал RTP арқылы немесе контейнерсіз жіберілгенде audio/speex (бұрын audio/x speex) болып табылады. General Dynamics компаниясы жасаған АҚШ Армиясының Land Warrior жүйесі де Raytheon компаниясының EPLRS радиосында VoIP үшін Speex-ті пайдаланады. Ear Bible – бұл 1 ГБ флэш-жады бар, New American Standard Bible жазбасымен алдын ала жүктелген бір құлаққа арналған құлаққап. ASL Safety & Security компаниясының Linux негізіндегі VIPA OS бағдарламалық жасақтамасы ірі халықаралық әуе тасымалы орталықтары мен теміржол желілеріндегі ұзақ желілік дауыстау жүйелерінде және дауыстық ескерту жүйелерінде қолданылады. Rockbox жобасы Speex-ті дауыс интерфейсі үшін пайдаланады. Ол сондай-ақ Apple iPod немесе iRiver H10 сияқты қолдау көрсетілетін ойнатқыштарда Speex файлдарын ойната алады. Vernier LabQuest портативті деректерді жинау құрылғысы ғылыми білім беру үшін Speex-ті студенттер мен мұғалімдер құрастырылған немесе сыртқы микрофонды пайдалана отырып жасаған дауыстық түсіндірмелер үшін қолданады. iPhone үшін Google мобильді қосымшасы қазіргі уақытта Speex-ті қамтиды. Жаңа Google дауыстық іздеу iPhone қосымшасы дауысты Google серверлеріне түсіндіру үшін Speex арқылы жіберуі мүмкін деген болжам бар. Adobe Flash Player 2008 жылдың қазан айында шығарылған Flash Player 10.0.12.36 нұсқасынан бастап Speex-ті қолдайды. Flash Player-дегі кейбір қателерге байланысты Speex қолдауы үшін ұсынылатын алғашқы нұсқа 10.0.22.87 және одан кейінгі нұсқалар болып табылады. Speex Flash Player-де Flash Media Server немесе P2P арқылы екі түрлі байланыс үшін де пайдаланылуы мүмкін. Speex, Nellymoser аудиодан айырмашылығы, кез келген форматқа шифрлануы немесе түрлендірілуі мүмкін, бұл Flash Player-дің бұрынғы нұсқаларындағы жалғыз сөйлеу форматы болды. Speex сондай-ақ Flash Video контейнер форматында (.flv) қолданылуы мүмкін, видео файл форматының 10-шы нұсқасынан бастап (2008 жылдың қараша айында жарияланған). JavaSonics ListenUp дауыстық жазғышы браузерде жазылған дауыстық хабарламаларды сығымдау және веб-серверге жүктеу үшін Speex-ті пайдаланады. Негізгі қолданыс салалары – тілдік оқыту, транскрипция және әлеуметтік желілер. Speex iPhone 4S-тегі Siri дауыстық ассистентындағы дауыс сығу алгоритмі ретінде қолданылады. Мәтіннен сөйлеуге ауысу Apple серверлерінде жүзеге асырылатындықтан, Speex кодегі желілік өткізу қабілетін азайту үшін қолданылады.
Streaming applications like teleconference (e. g. TeamSpeak, Mumble)
VoIP systems (e. g. Asterisk)
Videogames (e. g. Xbox Live, Civilization 4, DropMix vocal tracks, )
Audio processing applications. Most of these are based on the DirectShow filter or OpenACM codec (e. g. Microsoft NetMeeting) on Microsoft Windows, or Xiph. org's reference implementation, libvorbis, on Linux (e. g. Ekiga). There are also plugins for many audio players. See the plugin and software page on the speex. org site for more details. The media type for Speex is audio/ogg while contained by Ogg, and audio/speex (previously audio/x speex) when transported through RTP or without container. The United States Army's Land Warrior system, designed by General Dynamics, also uses Speex for VoIP on an EPLRS radio designed by Raytheon. The Ear Bible is a single ear headphone with a built in Speex player with 1 GB of flash memory, preloaded with a recording of the New American Standard Bible. ASL Safety & Security's Linux based VIPA OS software which is used in long line public address systems and voice alarm systems at major international air transport hubs and rail networks. The Rockbox project uses Speex for its voice interface. It can also play Speex files on supported players, such as the Apple iPod or the iRiver H10. The Vernier LabQuest handheld data acquisition device for science education uses Speex for voice annotations created by students and teachers using either the built in or an external microphone. The Google Mobile App for iPhone currently incorporates Speex. It has also been suggested that the new Google voice search iPhone app is using Speex to transmit voice to Google servers for interpretation. Adobe Flash Player supports Speex starting with Flash Player 10.0.12.36, released in October 2008. Because of some bugs in Flash Player, the first recommended version for Speex support is 10.0.22.87 and later. Speex in Flash Player can be used for both kind of communication, through Flash Media Server or P2P. Speex can be decoded or converted to any format unlike Nellymoser audio, which was the only speech format in previous versions of Flash Player. Speex can be also used in the Flash Video container format (. flv), starting with version 10 of Video File Format Specification (published in November 2008). The JavaSonics ListenUp voice recorder uses Speex to compress voice messages that are recorded in a browser and then uploaded to a web server. Primary applications are language training, transcription and social networking. Speex is used as the voice compression algorithm in the Siri voice assistance on the iPhone 4S. Since text to speech occurs on Apple's servers, the Speex codec is used to minimize network bandwidth.