音訊 (一) : 音訊基礎知識

weixin_34107955發表於2017-06-09

前言:沒搜到Speex相關的中文資料,所以想將Speex的英文手冊中會用到的部分翻譯出來。Speex官網:http://speex.org/ 可以再Documentation下找到PDF版或HTML OL版的英文手冊。每段我都會付上英文原段落,可能會由於英文技能的匱乏或語音解碼領域的不熟悉會有翻譯錯誤,也望各位發現後能夠不吝賜教,大家共同進步。

1.1 關於此文件
簡介:

The Speex codec (http://www.speex.org/) exists because there is a need for a speech codec that is open-source and free from software patent royalties. These are essential conditions for being usable in any open-source software. In essence,Speex is to speech what Vorbis is to audio/music. Unlike many other speech codecs, Speex is not designed for mobile phones but rather for packet networks and voice over IP (VoIP) applications. File-based compression is of course also supported.

由於語音對話編解碼需要一個免費的開源軟體,所以誕生了Speex庫,可以在任何開源軟體中使用。實際上,Speex對於語音對話來講,相當於Vorbis[一種可將聲音來源加以壓縮的編碼軟體,開放原始碼且免版權]對於音訊/音樂。和大多數語音編解碼庫不一樣的是,Speex不是為行動電話而設計的,而是為分組網路的VOIP(Voice over IP)應用程式,同時支援基於檔案的壓縮。

The Speex codec is designed to be very flexible and support a wide range of speech quality and bit-rate. Support for very good quality speech also means that Speex can encode wideband speech (16 kHz sampling rate) in addition to narrowband speech (telephone quality, 8 kHz sampling rate).

Speex編解碼庫的設計非常靈活,支援廣泛的語音質量和位元率。良好的語音質量支援意味著除了窄帶語音( 電話質量,8kHz取樣率)外還可以對寬頻語音( 電話質量,16kHz取樣率)進行編解碼。

Designing for VoIP instead of mobile phones means that Speex is robust to lost packets, but not to corrupted ones. This is based on the assumption that in VoIP, packets either arrive unaltered or don’t arrive at all. Because Speex is targeted at a wide range of devices, it has modest (adjustable) complexity and a small memory footprint.

Speex被設計用於VoIP而不是行動電話,意味著Speex對於丟包能夠妥善處理,不會有損壞資料。這在VOIP裡是基於這樣的假設,資料包要麼不被改變的到達,要麼不會到達。Speex針對於大多數的裝置,因此它擁有適中(可調整)的複雜性和較小記憶體佔用。

All the design goals led to the choice of CELP as the encoding technique. One of the main reasons is that CELP has long proved that it could work reliably and scale well to both low bit-rates (e.g. DoD CELP @ 4.8 kbps) and high bit-rates (e.g.G.728 @ 16 kbps).

所有這些設計的目的是為了引入碼激勵線性預測(CELP)編碼技術,因為長期實踐表明它對於低位元率(如DoD CELP@ 4.8kbps)和高位元率(如G.728 @ 16kbps)的工作效能良好,可靠性高。

1.1 獲得幫助
As for many open source projects, there are many ways to get help with Speex. These include:
• This manual
• Other documentation on the Speex website (http://www.speex.org/)
• Mailing list: Discuss any Speex-related topic on speex-dev@xiph.org (not just for developers)
• IRC: The main channel is #speex on irc.freenode.net. Note that due to time differences, it may take a while to get someone, so please be patient.
• Email the author privately at jean-marc.valin@usherbrooke.ca only for private/delicate topics you do not wish to discuss publically.

類似於大多數開源專案,Speex也可以能過多種獲得幫助的路徑,包括:

l 本手冊

l Speex官方站點(http://www.speex.org/ )的其他文件

l 郵件列表:討論Speex相關傳送至 speex-dev@xiph.org (不是僅限於開發者)

l IRC:通過irc.freenode.net Speex頻道獲取,可能需要耐心等待一段時間

l 如果不想公開討論一些主題,可Email作者jean-marc.valin@usherbrooke.ca

Before asking for help (mailing list or IRC), it is important to first read this manual (OK, so if you made it here it’s already a good sign). It is generally considered rude to ask on a mailing list about topics that are clearly detailed in the documentation. On the other hand, it’s perfectly OK (and encouraged) to ask for clarifications about something covered in the manual. This manual does not (yet) cover everything about Speex, so everyone is encouraged to ask questions, send comments, feature requests, or just let us know how Speex is being used.

在尋求幫助前(郵件列表或IRC),最好先仔細閱讀本手冊(呵呵,看到這裡說明你已經有一個不錯的開始),如果文件中介紹的很詳細的問題你仍然去Email多不好。當然,本手冊也不可能囊括關於Speex所有的知識點,所以也希望大家多提問題和見解、以及需要改進或增加的功能,或者是僅僅讓我們知道您在使用Speex。

Here are some additional guidelines related to the mailing list. Before reporting bugs in Speex to the list, it is strongly recommended (if possible) to first test whether these bugs can be reproduced using the speexenc and speexdec (see Section 4)
command-line utilities. Bugs reported based on 3rd party code are both harder to find and far too often caused by errors that have nothing to do with Speex.

在傳送報告Bugs的郵件時,也對大家有些額外的要求,建議(如果可能)先使用Speexenc和Speexdec(見第4節)命令列工具測試能否使Bugs再現,很多報告的Bug都由第三方的程式碼引起而難以發現,造成的錯誤往往不關Speex的事。

1.2 關於此文件
This document is divided in the following way. Section 2 describes the different Speex features and defines many basic terms that are used throughout this manual. Section 4 documents the standard command-line tools provided in the Speex distribution. Section 5 includes detailed instructions about programming using the libspeex API. Section 7 has some information related to Speex and standards.

文件分為幾部分,第2節介紹Speex的特性以及一些文件中用到的基本術語。第4節是關於Speex提供的標準命令列工具。第5節是使用libspeex API進行程式設計的詳細說明。第7節是一些關於Speex相關標準的資訊。

The three last sections describe the algorithms used in Speex. These sections require signal processing knowledge, but are not required for merely using Speex. They are intended for people who want to understand how Speex really works and/or want to do research based on Speex. Section 8 explains the general idea behind CELP, while sections 9 and 10 are specific to Speex.

最後三節介紹了Speex使用的演算法。這部分需要訊號處理相關知識,但這是對於那些想了解Speex的真正工作原理或基於Speex進行研究的人,如果僅僅是使用Speex庫則不是必需的。第8節大概介紹了CELP(碼激勵線性預測)編碼,9和10節是關於Speex的一些具體介紹。

相關文章