2009-09-17 9 views
2

私はJSpeex APIを使用して.wavファイルを.spxファイルに変換しています。デスクトップ上でテストするとすべてが完璧になります。わずか2秒しかかかりませんでした。WAVからSpeexへの変換に多くの時間がかかります

Android開発者は同じコードを使用しましたが、同じファイルをシミュレータ&電話でエンコードするのに約3分かかりました。この時間を短縮する方法はありますか?変換するコードは次のとおりです。

new JSpeexEnc().encode(new File("source.wav"), new File("dest.spx")); 
+0

アンドロイドでアプリケーションをプロファイルする方法はありますか?たぶんそれはほとんどの時間かかるIOですか? JITを使用するように、Android上にjvm用の-serverスイッチのようなものがありますか? Android用のJITはありますか? –

答えて

1

圧縮には時間がかかります。圧縮が良くなればなるほど、Speexはかなり良い圧縮です。

2秒のデスクトップコンピュータの時間は絶対に年齢です。

JSpeexはJavaの実装です。代わりに、プラットフォームコーデックを使用するのが理想的です。

電話では、音声はAMRを使用して最適に圧縮されます。ただし、最高の品質/圧縮は必要ありませんが、GSMによって使用されるフォーマット以降、あなたは通常、マイクからAMRをまっすぐに得ることができます。

まず、大容量のWAVファイルをAndroid搭載端末に転送するにはどうすればよいですか?実際にマイクの出力である場合は、上記のようにAMRの使用を検討してください。

Speexが必要でwavファイルがある場合は、圧縮用にサーバーに送信することを検討してください。

+0

複数のプラットフォーム(Iphone、Windows、Symbina)がネイティブファイルタイプを使用し、speexを使用してエンコードしている場合、それらをデコードして再生することは可能ですか? ありがとう、 Rohit –

+0

iphoneは*録音* AMRをサポートしていません(もちろん、電話会社用のものですが、サードパーティには公開されていません)が、エンコーダを移植することはできます。再生は明らかに機能します。窓とアンドロイドとシンビアンの携帯電話はすべてAMRを使用します。 – Will

+0

あなたの素早く便利な答えをありがとう –

関連する問題