4-12日报

  今天回顾安卓开发,为了后一两个月时间的软件杯做准备。

  首先就是先记录下重新使用安卓进行打包时遇到的问题:将apk打包在自己的手机上进行安装时出现类似“解析错误”这样的问题,我在网上搜索相关内容,网上说了在build.grade里面的

defaultConfig有一项“minSdkVersion”需要变更,然后我从以前的项目可以运行打包的里面看对应项,果然需要改变,现在的项目是30,将其改成16即可将apk安装

  软件杯进行的开发是手机语音辅助软件,然后用到的需要手机将文字转成语音,然后要识别用户说的话并作出相应的回应,今天做的是记录下开发中的文字转语音:

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.AppCompatButton;
import androidx.appcompat.widget.AppCompatEditText;

import android.os.Bundle;
import android.speech.tts.*;
import android.text.TextUtils;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import java.util.Locale;

public class MainActivity extends AppCompatActivity implements View.OnClickListener, TextToSpeech.OnInitListener {
private EditText et_input;
private Button bt_start;
private Button bt_pause;
private Button bt_resume;

private TextToSpeech textToSpeech;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (textToSpeech==null){
textToSpeech = new TextToSpeech(this, this);
}

initView();

}
private void ttsParam() {
textToSpeech.setPitch(1.4f);// 设置音调,,1.0是常规
textToSpeech.setSpeechRate(1.2f);//设定语速,1.0正常语速
}


private void initView() {
et_input = findViewById(R.id.et_input);
bt_start = findViewById(R.id.bt_start);
bt_pause = findViewById(R.id.bt_pause);
bt_resume = findViewById(R.id.bt_resume);

bt_start.setOnClickListener(this);
bt_pause.setOnClickListener(this);
bt_resume.setOnClickListener(this);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_start:

textToSpeech.speak(et_input.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);

break;
case R.id.bt_pause:
Toast.makeText(this, "未实现", Toast.LENGTH_SHORT).show();
break;
case R.id.bt_resume:
Toast.makeText(this, "未实现", Toast.LENGTH_SHORT).show();
break;
}

}

@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
//初始化tts引擎
int result = textToSpeech.setLanguage(Locale.CHINA);
//设置参数
ttsParam();
if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
Toast.makeText(this, "语音包丢失或语音不支持", Toast.LENGTH_SHORT).show();

}
}
}

@Override
protected void onDestroy() {
if (textToSpeech!=null){
//释放资源
textToSpeech.stop();
textToSpeech.shutdown();
}
super.onDestroy();
}

}
使用的是安卓自带的文字转语音包TTS,然后使用代码,界面如下:

 

 在自己的手机上运行,即可实现将文字转成语音,然后我要做的就是对代码进行分析,取出我需要的部分再利用,不过安卓开发有点忘记了,最近也需要再回顾熟悉下了。

 
posted @ 2022-04-12 15:36  软工新人  阅读(10)  评论(0编辑  收藏  举报