MicrophoneInputStream音源的问题,希望能够支持自定义,目前只是支持自定义sample?
宋志南 发布于2016-09 浏览:1358 回复:3
0
收藏

sdk2.1 对于老的设备 或不按标准设计的设备 音源不能够自定义

MicrophoneInputStream 147行 AudioRecord r = new AudioRecord(1, sample, 16, 2, 163840);

参数是写死了的,除了sample,希望支持自定义,现在我用遥控器的录音的时候就没法耍了。

我需要这样的

this.audioSource = MediaRecorder.AudioSource.VOICE_RECOGNITION;
this.sampleRateInHz = 16000;
this.channelConfig = AudioFormat.CHANNEL_CONFIGURATION_MONO;//AudioFormat.CHANNEL_IN_MONO;
this.audioFormat = AudioFormat.ENCODING_PCM_16BIT;

this.bufferSizeInBytes = 163840;

转换后如下

AudioRecord r = new AudioRecord(6, 16k, 2, 2, 163840);

1、目前使用语音识别 2.0.1sdk 不能使用feedAudioBuffer,使用系统接口貌似 在有些设备上不能运行

2、使用语音识别2.1sdk beta识别成功返回值只是一个list ,我们需要返回原始数据的json,好对语义进行解析

com.android.speech 系统接口在有些设备上不能使用,比如我这边的电视TV就不能识别,原因是那个audioRecord没有工作


我这边主要是电视语音交互的开发,我还是比较喜欢系统接口的方式,不知道怎么解决sdk的问题。


收藏
点赞
0
个赞
共3条回复 最后由用户已被禁言回复于2022-04
#4c5812回复于2016-09

您好,1.6可以参考对应demo的语义部分,语义部分是nbest数组的第0项

0
#3宋志南回复于2016-09
  1. // 重写监听器
  2. class MyVoiceRecogListener implements VoiceClientStatusChangeListener {
  3.    public void onClientStatusChange(int status, Object obj) {
  4.        // 处理识别状态变化
  5.    }
  6.    public void onError(int errorType, int errorCode) {
  7.        // 处理出错异常
  8.    }
  9.    public void onNetworkStatusChange(int status, Object obj) {
  10.        // 处理网络状态变化
  11.    }
  12. }
  13. onClientStatusChange(int status, Object obj)
  14. 这个Object obj参数返回的不是原始的语义json数据,只是一个简单的识别结果,希望像1.6.2那样返回origin_result json数据


0
#2c5812回复于2016-09

1. 可以通过infile参数来自定义音频数据源

2. origin_result就是您需要的原始结构体,该结构体中包含json_res字段(特别注意该字段是以字符串形式返回的),即语义

0
TOP
切换版块