TextToSpeech, 아이플라이텍
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);
mBinding.setOnClick(this);
mTextToSpeech = new TextToSpeech(this,this);
}
private void speakOut() {
if (mTextToSpeech!= null && !mTextToSpeech.isSpeaking()){
// Bundle bundle = new Bundle();
// bundle.putFloat(TextToSpeech.Engine.KEY_PARAM_VOLUME,1.0f);
// , added in API level 4 added in API level 21
// mTextToSpeech.speak(mBinding.editText.getText().toString(),TextToSpeech.QUEUE_FLUSH,null);
mTextToSpeech.speak(mBinding.editText.getText().toString(),TextToSpeech.QUEUE_FLUSH,null,"");
}
}
/**
*
* @param status
*/
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS){
// ,1.0
mTextToSpeech.setPitch(1.0f);
// , 1.0
mTextToSpeech.setSpeechRate(1.0f);
int result = mTextToSpeech.setLanguage(Locale.CHINA);
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED){
Toast.makeText(this," ",Toast.LENGTH_SHORT).show();
}
}
}
아이플라이텍:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_xun_fei);
mBinding.setOnClick(this);
//
SpeechUtility.createUtility(getApplicationContext(), SpeechConstant.APPID + "=5b558975");
mSynthesizer = SpeechSynthesizer.createSynthesizer(this, this);
}
private void speak() {
mSynthesizer.startSpeaking(mBinding.editTextXf.getText().toString(),mSynthesizerListener);
}
/*
*/
private SynthesizerListener mSynthesizerListener = new SynthesizerListener() {
@Override
public void onSpeakBegin() {
//
}
@Override
public void onBufferProgress(int i, int i1, int i2, String s) {
//
}
@Override
public void onSpeakPaused() {
//
}
@Override
public void onSpeakResumed() {
//
}
@Override
public void onSpeakProgress(int i, int i1, int i2) {
//
}
@Override
public void onCompleted(SpeechError speechError) {
if (speechError == null){//
}else {
}
}
@Override
public void onEvent(int i, int i1, int i2, Bundle bundle) {
// id, id , ,
// , id null
}
};
@Override
public void onInit(int i) {
if (i != ErrorCode.SUCCESS){
return;//
}
mSynthesizer.setParameter(SpeechConstant.ENGINE_MODE, SpeechConstant.MODE_MSC);
mSynthesizer.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_LOCAL);
mSynthesizer.setParameter(ResourceUtil.TTS_RES_PATH, getResourcePath());
mSynthesizer.setParameter(SpeechConstant.VOICE_NAME, voicerLocal);
}
코드가 비교적 간단하여, 부족한 점이 있으면 여러분은 댓글로 의사소통을 하실 수 있습니다.
전체 코드는 GitHub 참조
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.