-
大小: 7KB文件類型: .rar金幣: 2下載: 0 次發布日期: 2021-05-17
- 語言: 其他
- 標簽: kedaxunfei??yuyinpingce??
資源簡介
科大訊飛語音評測接入相關類,SpeakingExamFragment為使用類,其余為工具類

代碼片段和文件信息
package?com.shushan.util;
import?android.media.AudioFormat;
import?android.media.AudioRecord;
import?android.media.MediaRecorder;
import?android.os.Environment;
import?java.io.BufferedOutputStream;
import?java.io.ByteArrayOutputStream;
import?java.io.File;
import?java.io.FileInputStream;
import?java.io.FileNotFoundException;
import?java.io.FileOutputStream;
import?java.io.IOException;
import?java.io.OutputStream;
/**
?*?@ClassName:?AudioRecordUtil
?*?@Desciption:?//錄制wav格式音頻
?*?@author:?zhangshihao
?*?@date:?2018-07-21
?*/
public?class?AudioRecordUtil?{
????private?static?AudioRecordUtil?mInstance;
????private?AudioRecord?recorder;
????//錄音源
????private?static?int?audioSource?=?MediaRecorder.AudioSource.MIC;
????//錄音的采樣頻率
????private?static?int?audioRate?=?16000;
????//錄音的聲道,單聲道
????private?static?int?audioChannel?=?AudioFormat.CHANNEL_IN_MONO;
????//量化的深度
????private?static?int?audioFormat?=?AudioFormat.ENCODING_PCM_16BIT;
????//緩存的大小
????private?static?int?bufferSize?=?AudioRecord.getMinBufferSize(audioRateaudioChannelaudioFormat);
????//記錄播放狀態
????private?boolean?isRecording?=?false;
????//數字信號數組
????private?byte?[]?noteArray;
????//PCM文件
????private?File?pcmFile;
????//WAV文件
????private?File?wavFile;
????//文件輸出流
????private?OutputStream?os;
????//文件根目錄
????private?String?basePath?=?Environment.getExternalStorageDirectory().getAbsolutePath()+“/eva/“;
????//wav文件目錄
????private?String?outFileName?=?basePath+“/eva.wav“;
????//pcm文件目錄
????private?String?inFileName?=?basePath+“/eva.pcm“;
????private?AudioRecordUtil(){
????????createFile();//創建文件
????????recorder?=?new?AudioRecord(audioSourceaudioRateaudioChannelaudioFormatbufferSize);
????}
????public?synchronized?static?AudioRecordUtil?getInstance(){
????????if(mInstance?==?null){
????????????mInstance?=?new?AudioRecordUtil();
????????}
????????return?mInstance;
????}
????//讀取錄音數字數據線程
????class?WriteThread?implements?Runnable{
????????public?void?run(){
????????????writeData();
????????}
????}
????//開始錄音
????public?void?startRecord(){
????????isRecording?=?true;
????????recorder.startRecording();
????}
????//停止錄音
????public?void?stopRecord(){
????????isRecording?=?false;
????????recorder.stop();
????}
????//將數據寫入文件夾文件的寫入沒有做優化
????public?void?writeData(){
????????noteArray?=?new?byte[bufferSize];
????????//建立文件輸出流
????????try?{
????????????os?=?new?BufferedOutputStream(new?FileOutputStream(pcmFile));
????????}catch?(IOException?e){
????????}
????????while(isRecording?==?true){
????????????int?recordSize?=?recorder.read(noteArray0bufferSize);
????????????if(recordSize>0){
????????????????try{
????????????????????os.write(noteArray);
????????????????}catch(IOException?e){
????????????????}
????????????}
????????}
????????if?(os?!=?null)?{
????????????try?{
????????????????os.close();
????????????}catch?(IOException?e){
????????????}
????????}
????}
????//?這里得到可播放的
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????11029??2018-08-21?09:32??SpeakingExamFragment.java
?????文件???????3436??2018-08-14?09:47??SpeechEvaluatorUtil.java
?????文件???????8609??2018-08-21?10:03??AudioRecordUtil.java
-----------?---------??----------?-----??----
????????????????23074????????????????????3
評論
共有 條評論