2

Android アプリケーションで Bluetooth ヘッドセットからオーディオ サンプルを読み込んでいます。Bluetooth SCO は、Audio IN の 8KHz サンプリング周波数で動作します。しかし、Bluetooth ヘッドセットから 16KHz のオーディオ サンプルが必要なので、アップサンプリングを使用する必要があります。

Androidのアップサンプリングに関して、ここと他のWebサイトでも検索しましたが、役に立ちませんでした。アップサンプリング用の事前定義された Java ライブラリについて誰かが知っている場合は、私の質問に答えてください。

4

2 に答える 2

1

テストしているデバイスにオーディオ HAL / audioflinger の奇妙な実装がない限り、16 kHz を要求すると、アップサンプリングが自動的に行われます。

入力デバイスでサポートされていないサンプル レートをリクエストすると、オーディオ HAL がエラー コードを audioflinger に返し、使用するサンプル レートを提案します。次に、audioflinger は、サポートされているサンプル レートで入力ストリームを開こうとし、内部で再サンプリングを行って、アプリケーションが要求されたレートでオーディオ データを取得できるようにします。

これは、要求されたサンプル レートがサポートされているサンプル レートの 2 倍を超えない限り機能するはずです。そのため、8 -> 16 kHz のアップサンプリングが機能するはずです。このアップサンプリングの品質が十分かどうかは、自分で判断する必要があります。

于 2012-10-05T09:07:32.080 に答える
-1

最も簡単なのは、各値をコピーして頻度を2倍にすることです。これによって音質が向上することはありませんが、悪化することもありません。これは、画像をより高い解像度にアップスケールする方法と似ています。フィルタリングを行わないと、分数以外の量でアップスケールする限り、見た目は悪くなりませんが、良くなることもありません。

この画像の違いがわかりますか。

ここに画像の説明を入力してください

この?

2番目の画像は実際には2倍の解像度ですが、同じように見えます。

分数以外の数値でサウンド(または画像)をスケーリングする限り、スケーリングアーティファクトは発生しません。

ただし、アップサンプリングされたサウンドをスムーズにしたい場合のさまざまなヒント:

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

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

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

于 2012-10-05T07:01:55.203 に答える