功能:
快速打开应用。语音控制直接收听在线音乐。天气预报。直接将某个联系人的联系方式发送给另外一个人。
科大讯飞语音引擎:是一款Android平台的应用。
使用方法:请长按菜单键呼出语音助手。
第一步 :了解TTS语音服务TTS的全称为Text To Speech,即“从文本到语音”。它是同时运用语言学和心理学的杰出之作,在内置芯片的支持之下,通过神经网络的设计,把文字智能地转化为自然语音流。
TTS技术对文本文件进行实时转换,转换时间之短可以秒计算。在其特有智能语音控制器作用下,文本输出的语音音律流畅,使得听者在听取信息时感觉自然,毫无机器语音输出的冷漠与生涩感。使用户可以听到清晰悦耳的音质和连贯流畅的语调
讯飞语言服务分为在线合成和本地合成,其中本地合成需要下载语言包,这和google的TTS一样,但是google的TTS在有的手机中不被支持或者是不支持中文。在这里我们使用的是在线合成的方法,需要有一点点的网速,否则会出现网络缓慢,暂停播放的提示。
第二步:了解主要对象和方法
// 语音合成对象
private SpeechSynthesizer mTts
// 语音听写对象
private SpeechRecognizer mIat
//初始化TTS
mTts = SpeechSynthesizer.createSynthesizer(IatDemo.this, mTtsInitListener)
//主要方法 text为要读的文本
mTts.startSpeaking(text, mTtsListener)
//语音对象参数设置
// 设置听写引擎
mIat.setParameter(SpeechConstant.ENGINE_TYPE, mEngineType)
// 设置返回结果格式
mIat.setParameter(SpeechConstant.RESULT_TYPE, "json")
String lag = mSharedPreferences.getString("iat_language_preference",
"mandarin")
if (lag.equals("en_us")) {
// 设置语言
mIat.setParameter(SpeechConstant.LANGUAGE, "en_us")
} else {
// 设置语言
mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn")
// 设置语言区域
mIat.setParameter(SpeechConstant.ACCENT, lag)
}
// 设置语音前端点:静音超时时间,即用户多长时间不说话则当做超时处理
mIat.setParameter(SpeechConstant.VAD_BOS, mSharedPreferences.getString("iat_vadbos_preference", "4000"))
// 设置语音后端点:后端点静音检测时间,即用户停止说话多长时间内即认为不再输入, 自动停止录音
mIat.setParameter(SpeechConstant.VAD_EOS, mSharedPreferences.getString("iat_vadeos_preference", "1000"))
// 设置标点符号,设置为"0"返回结果无标点,设置为"1"返回结果有标点
mIat.setParameter(SpeechConstant.ASR_PTT, mSharedPreferences.getString("iat_punc_preference", "1"))
// 设置音频保存路径,保存音频格式支持pcm、wav,设置路径为sd卡请注意WRITE_EXTERNAL_STORAGE权限
// 注:AUDIO_FORMAT参数语记需要更新版本才能生效
mIat.setParameter(SpeechConstant.AUDIO_FORMAT,"wav")
mIat.setParameter(SpeechConstant.ASR_AUDIO_PATH, Environment.getExternalStorageDirectory()+"/msc/iat.wav")
// 设置听写结果是否结果动态修正,为“1”则在听写过程中动态递增地返回结果,否则只在听写结束之后返回最终结果
// 注:该参数暂时只对在线听写有效
mIat.setParameter(SpeechConstant.ASR_DWA, mSharedPreferences.getString("iat_dwa_preference", "0"))
第三步:实现功能
package com.jerehedu.administrator.mysounddemo
import android.annotation.SuppressLint
import android.app.Activity
import android.content.SharedPreferences
import android.os.Bundle
import android.os.Environment
import android.util.Log
import android.view.View
import android.view.View.OnClickListener
import android.view.Window
import android.widget.EditText
import android.widget.RadioGroup
import android.widget.Toast
import com.iflytek.cloud.ErrorCode
import com.iflytek.cloud.InitListener
import com.iflytek.cloud.RecognizerListener
import com.iflytek.cloud.RecognizerResult
import com.iflytek.cloud.SpeechConstant
import com.iflytek.cloud.SpeechError
import com.iflytek.cloud.SpeechRecognizer
import com.iflytek.cloud.SpeechSynthesizer
import com.iflytek.cloud.SynthesizerListener
import com.iflytek.cloud.ui.RecognizerDialog
import com.iflytek.cloud.ui.RecognizerDialogListener
import com.iflytek.sunflower.FlowerCollector
import org.json.JSONException
import org.json.JSONObject
import java.util.HashMap
import java.util.LinkedHashMap
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)