java转换音频采样率_转换音频采样率
對于采樣率,相信很多人知道這個詞卻不知道是什么意思。
官方解釋:采樣頻率,也稱為采樣速度或者采樣率,定義了每秒從連續信號中提取并組成離散信號的采樣個數,它用赫茲(Hz)來表示。采樣頻率的倒數是采樣周期或者叫作采樣時間,它是采樣之間的時間間隔。通俗的講采樣頻率是指計算機每秒鐘采集多少個聲音樣本,是描述聲音文件的音質、音調,衡量聲卡、聲音文件的質量標準。
從實際效果簡單來說,采樣率會影響播放速度,采樣率越高播放速度越快。如果你以44.1k的采樣率去播一個只有8k采樣率的音頻,估計很快就播完了。所以,由于并不是所有音頻的采樣率都是統一的,就會涉及到一個采樣率轉換的問題,在這里給大家介紹一個庫,JSSRC。
這里是github地址:https://github.com/hutm/JSSRC
里面的類也不是所有都需要用到,只需要SSRC,I0Bessel,SplitRadixFft這三個類就可以實現轉換采樣率的功能。
然后用下面這個方法就可以轉換采樣率了:
private void simpleDownSample() {
File BeforeSampleChangedFile = new File(BeforeSampleChangedFilePath);
File SampleChangedFile = new File(SampleChangedFilePath);
try {
FileInputStream fileInputStream = new FileInputStream(BeforeSampleChangedFile);
FileOutputStream fileOutputStream = new FileOutputStream(SampleChangedFile);
new SSRC(fileInputStream, fileOutputStream, 8000, 44100,
2,
2,
1, Integer.MAX_VALUE, 0, 0, true);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
其中8000就是待轉換的采樣率,44100就是目標采樣率,可以從低轉到高,也可以高轉低。
轉換采樣率的方法還有很多,只是我覺得這個方法比較簡單,希望會對大家有幫助
總結
以上是生活随笔為你收集整理的java转换音频采样率_转换音频采样率的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java returnaddress_J
- 下一篇: java script jquery_J