예제 #1
0
 /**
  * 参数设置
  *
  * @param param
  * @return
  */
 public void setParam() {
   String lag = mSharedPreferences.getString("understander_language_preference", "mandarin");
   if (lag.equals("en_us")) {
     // 设置语言
     mSpeechUnderstander.setParameter(SpeechConstant.LANGUAGE, "en_us");
   } else {
     // 设置语言
     mSpeechUnderstander.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
     // 设置语言区域
     mSpeechUnderstander.setParameter(SpeechConstant.ACCENT, lag);
   }
   // 设置语音前端点
   mSpeechUnderstander.setParameter(
       SpeechConstant.VAD_BOS,
       mSharedPreferences.getString("understander_vadbos_preference", "4000"));
   // 设置语音后端点
   mSpeechUnderstander.setParameter(
       SpeechConstant.VAD_EOS,
       mSharedPreferences.getString("understander_vadeos_preference", "1000"));
   // 设置标点符号
   mSpeechUnderstander.setParameter(
       SpeechConstant.ASR_PTT, mSharedPreferences.getString("understander_punc_preference", "1"));
   // 设置音频保存路径
   mSpeechUnderstander.setParameter(
       SpeechConstant.ASR_AUDIO_PATH,
       Environment.getExternalStorageDirectory() + "/iflytek/wavaudio.pcm");
 }
  public static void init(Context context) {
    m_instance = new XFSpeechUnderstander();
    m_ctx = context;
    m_understander = SpeechUnderstander.createUnderstander(context, initListener);

    m_understander.setParameter(SpeechConstant.LANGUAGE, "zh_cn");

    // 设置语音前端点:静音超时时间,即用户多长时间不说话则当做超时处理
    m_understander.setParameter(SpeechConstant.VAD_BOS, "10000");

    // 设置语音后端点:后端点静音检测时间,即用户停止说话多长时间内即认为不再输入, 自动停止录音
    m_understander.setParameter(SpeechConstant.VAD_EOS, "2000");

    // 设置标点符号,默认:1(有标点)
    m_understander.setParameter(SpeechConstant.ASR_PTT, "0");

    // 设置音频保存路径,保存音频格式支持pcm、wav,设置路径为sd卡请注意WRITE_EXTERNAL_STORAGE权限
    // 注:AUDIO_FORMAT参数语记需要更新版本才能生效
    //        m_understander.setParameter(SpeechConstant.AUDIO_FORMAT, "wav");
    //        m_understander.setParameter(SpeechConstant.ASR_AUDIO_PATH,
    // Environment.getExternalStorageDirectory() + "/msc/sud.wav");

  }