可离线使用的Android中的文字转语音

时间:2019-04-09 15:44:56

标签: java android text-to-speech

我和我的朋友正在开发一个应用程序,该应用程序使用深度学习和神经网络来帮助视障人士。我们正在寻找一种通过语音将神经网络通过智能手机的摄像头获取的信息带回用户的方法,因此我们需要执行TextToSpeech。

但是,让用户离线运行应用程序是一项巨大的交易,并且由于该应用程序的所有其他部分都能够在没有Internet连接(神经网络等)的情况下运行,因此我们正在寻找一种方法离线执行TextToSpeech。该应用程序也使用俄语,因此可以支持多种语言的东西会很棒。

对于在Android Studio中从Android离线脱机TextToSpeech开始的任何提示,我们深表感谢!

1 个答案:

答案 0 :(得分:0)

尝试一下。确保在xml布局中添加文本输入框和按钮

    import java.util.Locale;
    import android.speech.tts.TextToSpeech;

public class TextToSpeech{

    private EditText write;
    private TextToSpeech t1;
    private Button speakbtn;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate ( savedInstanceState );
        setContentView ( R.layout.activity_text_to_speech );

        write = (EditText) findViewById ( R.id.editText );
        speakbtn = (Button) findViewById ( R.id.board );

  t1 = new TextToSpeech ( getApplicationContext () , new TextToSpeech.OnInitListener () {
            @Override
            public void onInit(int status) {

                if (status != TextToSpeech.ERROR) {
                    t1.setLanguage ( Locale.ENGLISH );

                }

            }
        } );

 speakbtn.setOnClickListener ( new View.OnClickListener () {
            @Override
            public void onClick(View v) {

                String toSpeak = write.getText ().toString ();
                Toast.makeText ( getApplicationContext () , toSpeak , Toast.LENGTH_SHORT ).show ();
                t1.speak ( toSpeak , TextToSpeech.QUEUE_FLUSH , null );

            }
        } );

  }
    @Override
    public void onDestroy() {
        //Dont forget to shut down text to speech
        if (t1 != null) {
            t1.stop ();
            t1.shutdown ();
        }
        super.onDestroy ();
    }

}