마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 TTS가 먹통입니다.

0 추천

구글의 Vision API 예제를 기반으로 앱을 만들고 있습니다. (대학 과제용)

TTS 기능을 추가하려하는데 TTSActivity.java 파일을 따로 생성해서 TTS 기능을 이식하니까 동작하지 않습니다..

분명 새 프로젝트에서 생성하고 그대로 TTS 기능만 실험하면 정상적으로 동작하는데

지금 만들고 있는 프로젝트에 이식하면 작동이 되질 않습니다..

 

Vision API 예제가 옛날에 올라온거라서 버전상의 충돌로 생각되어지는데.. 이것을 어떻게 찾을 수 있을까요?..

package com.google.sample.cloudvision;// TTS 코드

import android.os.Build;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.util.Log;
import android.view.View;
import android.widget.Button;

import androidx.appcompat.app.AppCompatActivity;

import java.util.Locale;

import static android.speech.tts.TextToSpeech.ERROR;

public class TTSActivity extends AppCompatActivity {
    private Button tts_button;
    private TextToSpeech tts;

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

        tts_button = (Button)findViewById(R.id.button2);
        tts_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                speak("테스트");

            }
        });
    }

    private void speak(String text) {
        tts = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
            @Override
            public void onInit(int status) {
                if (status != ERROR){
                    int result = tts.setLanguage(Locale.KOREA); // 언어 선택
                    if(result == TextToSpeech.LANG_NOT_SUPPORTED || result == TextToSpeech.LANG_MISSING_DATA){
                        Log.e("TTS", "This Language is not supported");
                    }else{
                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                            tts.speak(text, TextToSpeech.QUEUE_FLUSH, null, null);
                        }
                    }
                }else{
                    Log.e("TTS", "Initialization Failed!");
                }
            }
        });
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if(tts!=null){ // 사용한 TTS객체 제거
            tts.stop();
            tts.shutdown();
        }
        super.onDestroy();
    }
}

 

Dongni (120 포인트) 님이 2022년 11월 30일 질문

1개의 답변

0 추천
다른 분이 같은 종류의 질문을 하셨는데, 싧제 디바이스에서는 정상적으로 잘 동작할 거구요, 애뮬레이터를 사용하셨다면 애뮬레이터를 만드실 때 GoogleAPI를 포함되도록 생성하셔야 합니다. 애뮬레이터 생성 위저드에서 애뮤레이터에 사용할 이미지를 고르는 스텝에서 GooleApi가 적용된 걸 선택해 주시면 됩니다.
spark (226,420 포인트) 님이 2022년 11월 30일 답변
...