2021/01/12 - [안드로이드] - [안드로이드] 카메라(Camera) 사진(Image) 찍고 가져오기
2021/01/13 - [안드로이드] - [안드로이드]카메라(Camera) 저장공간 지정해서 고화질로 저장하기
2021/01/14 - [안드로이드] - [안드로이드] 차트(Chart) - 데이터를 그래픽으로 표현 Bar, Pie, Radar
2021/01/15 - [안드로이드] - [안드로이드] TextToSpeech 텍스트(Text)를 음성으로 전환시켜주는 방법
이번 시간에는 아이폰의 시리, 구글의 어시스턴트에서 쓰이는 음성을 읽어 텍스트로 보여주는 기능을
예제를 통해서 알아보겠습니다.
1. 메인화면 구현(activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/text_result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"
android:textSize="26sp"
android:textStyle="normal"
/>
<ImageView
android:id="@+id/btn_speak"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="60dp"
android:onClick="getSpeechInput"
android:src="@drawable/ic_mic"/>
</RelativeLayout>
res -> drawable -> 마이크 이미지 추가
2. 메인코드 구현(MainActivity.java)
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.speech.RecognizerIntent;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.Locale;
public class MainActivity extends AppCompatActivity{
private TextView textResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textResult = findViewById(R.id.text_result);
}
public void getSpeechInput(View view) {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
//음성 인식기에 사용되는 음성모델 정보 설정
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
//음성 인식기에 인식되는 언어 설정
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.KOREAN);
if(intent.resolveActivity((getPackageManager())) != null){
startActivityForResult(intent , 10);
}else{
Toast.makeText(this, "당신의 장비가 음성을 텍스트로 변경불가합니다.", Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){
case 10:
if(resultCode == RESULT_OK && data != null){
ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
textResult.setText(result.get(0));
}
break;
}
}
}
3. 실행화면
[안드로이드] OnClickListener onClick 하나로 다중 버튼 이벤트 설정하기 (0) | 2021.01.18 |
---|---|
[안드로이드] 액티비티(Activity) 활동주기(Life Cycle) (0) | 2021.01.17 |
[안드로이드] TextToSpeech 텍스트(Text)를 음성으로 전환시켜주는 방법 (0) | 2021.01.15 |
[안드로이드] 차트(Chart) - 데이터를 그래픽으로 표현 Bar, Pie, Radar (2) | 2021.01.14 |
[안드로이드]카메라(Camera) 저장공간 지정해서 고화질로 저장하기 (0) | 2021.01.13 |
댓글 영역