對於採樣率,相信不少人知道這個詞殊不知道是什麼意思。java
官方解釋:採樣頻率,也稱爲採樣速度或者採樣率,定義了每秒從連續信號中提取並組成離散信號的採樣個數,它用赫茲(Hz)來表示。採樣頻率的倒數是採樣週期或者叫做採樣時間,它是採樣之間的時間間隔。通俗的講採樣頻率是指計算機每秒鐘採集多少個聲音樣本,是描述聲音文件的音質、音調,衡量聲卡、聲音文件的質量標準。git
從實際效果簡單來講,採樣率會影響播放速度,採樣率越高播放速度越快。若是你以44.1k的採樣率去播一個只有8k採樣率的音頻,估計很快就播完了。因此,因爲並非全部音頻的採樣率都是統一的,就會涉及到一個採樣率轉換的問題,在這裏給你們介紹一個庫,JSSRC。github
這裏是github地址:https://github.com/hutm/JSSRCblog
裏面的類也不是全部都須要用到,只須要SSRC,I0Bessel,SplitRadixFft這三個類就能夠實現轉換採樣率的功能。it
而後用下面這個方法就能夠轉換採樣率了:io
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就是目標採樣率,能夠從低轉到高,也能夠高轉低。class
轉換採樣率的方法還有不少,只是我以爲這個方法比較簡單,但願會對你們有幫助音頻