Android 에 서 는 TTS(TextToSpeech)를 사용 하여 텍스트 를 음성 으로 변환 합 니 다.

4183 단어 Android
실현 절차:
  • TextToSpeech 대상 을 만 들 고 만 들 때 OnInitListener 모니터 에 들 어 갑 니 다
  • TextToSpeech 가 사용 하 는 언어,국가 옵션 을 설정 합 니 다
  • speak()또는 synthesizeToFile 방법 을 호출 합 니 다
  • TTS 를 닫 고 자원 을 회수 합 니 다
  • 레이아웃 에 EditText 를 추가 하여 문 자 를 가 져 오고 Button 을 추가 하여 재생 을 제어 하거나 합 성 된 사 운 드 파일 을 저장 합 니 다
  • 코드:
    초기 화
    TextToSpeech textToSpeech = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
                @Override
                public void onInit(int status) {
                    if (status == TextToSpeech.SUCCESS) {
                        int result = textToSpeech.setLanguage(Locale.US);
                        if (result != TextToSpeech.LANG_COUNTRY_AVAILABLE && result != TextToSpeech.LANG_AVAILABLE) {
                            Toast.makeText(MainActivity.this, "       ", Toast.LENGTH_SHORT).show();
                        }
                    }
                }
            });
  • 파일 로 재생 하거나 저장 합 니 다
  • FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
            fab.setOnClickListener(new View.OnClickListener() {
                @TargetApi(Build.VERSION_CODES.LOLLIPOP)
                @Override
                public void onClick(View view) {
                    textToSpeech.setSpeechRate(1);
                    textToSpeech.speak(editText.getText().toString(), TextToSpeech.QUEUE_ADD, null, "speech");
                    Snackbar.make(view, "         ", Snackbar.LENGTH_LONG)
                            .setAction("  ", new View.OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    textToSpeech.synthesizeToFile(editText.getText().toString(), null, new File("/mnt/sdcard/sound.mp3"), "record");
                                    Toast.makeText(MainActivity.this, "    ", Toast.LENGTH_SHORT).show();
                                }
                            }).show();
                }
            });

    자원 회수
    protected void onDestroy() {
            super.onDestroy();
            if (textToSpeech != null) {
                textToSpeech.shutdown();
            }
        }

    좋은 웹페이지 즐겨찾기