簡體   English   中英

在Android中對PCM音頻樣本進行升采樣

[英]Upsampling of PCM audio samples in Android

我正在從android應用程序中的藍牙耳機讀取音頻樣本。 藍牙SCO以8KHz的音頻IN采樣頻率工作。 但是我需要來自藍牙耳機的16KHz音頻樣本,因此我需要使用上采樣。

我在這里以及其他網站上搜索了有關Android上的升頻的信息,但沒有用。 如果有人知道用於預采樣的預定義Java庫,請回答我的問題。

如果您請求16 kHz,則應該自動進行升采樣,除非所測試的設備對音頻HAL / audioflinger的實現有些奇怪。

如果您請求輸入設備不支持的采樣率,將會(應該)發生的事情是,音頻HAL將返回一個錯誤代碼,直到Audioflinger並建議要使用的采樣率。 反之,audioflinger會嘗試以支持的采樣率打開輸入流,並在內部進行重采樣,以便應用程序以其請求的速率獲取音頻數據。

只要請求的采樣率不大於支持的采樣率的兩倍,它就應該起作用,因此8-> 16 kHz的上采樣應該起作用。 此升采樣的質量是否足夠好,您需要自己判斷。

最簡單的方法就是復制每個值並使頻率翻倍。 這不會改善聲音質量,但也不會使聲音質量變差。 這類似於您可以將圖像放大到更高的分辨率。 如果不進行過濾,只要您按小數比例進行放大,它看起來就不會更糟,但也不會更好。

您能分辨出這張圖片的區別嗎?

在此處輸入圖片說明

和這個?

第二張圖像實際上是分辨率的兩倍,但外觀相同。

只要您縮放具有非小數的聲音(或圖像),就不會引入縮放偽影。

但是,如果您想要平滑上采樣的聲音,則有各種提示:

https://ccrma.stanford.edu/~jos/resample/

http://paulbourke.net/miscellaneous/interpolation/

http://leute.server.de/wilde/resample.html#Upsampling

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM