사용자가 읽어주길 원하는 문장을 입력하면 읽어주는 기능을 해보겠습니다.
flutter_tts: ^3.8.5
패키지를 깔아주어야합니다.
https://pub.dev/packages/flutter_tts
최신버전을 확인하고 깔아주세요
flutter TTS는 안드로이드 SDK21이상에서만 사용이 가능합니다.
android/app/build. 파일에서 'minSdkVersion 21'로 수정해주세요.
import 'package:flutter_tts/flutter_tts.dart';
import해주세요.
final FlutterTts tts = FlutterTts();
final TextEditingController tts_controller = TextEditingController();
음성에 필요한 변수와 사용자가 문장을 작성할 때 필요한 변수입니다.
@override
void initState() {
super.initState();
tts.setLanguage("ko-KR"); //언어설정
tts.setSpeechRate(0.5); //말하는 속도(0.1~2.0)
tts.setVolume(0.6); //볼륨(0.0~1.0)
tts.setPitch(1); //음높이(0.5~2.0)
}
음성 상태를 초기화 해주세요
TextField(
controller: tts_controller,
),
사용자가 입력할 부분입니다.
ElevatedButton(
onPressed: () => tts.speak(tts_controller.text),
child: Text("재생"),
),
버튼을 누르면 음성이 실행됩니다.
import 'package:flutter/material.dart';
import 'package:flutter_tts/flutter_tts.dart';
void main() async {
runApp(MaterialApp(home: MyApp()));
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(),
home: Text_To_Speech(),
);
}
}
class Text_To_Speech extends StatefulWidget {
@override
State<Text_To_Speech> createState() => _Text_To_SpeechState();
}
class _Text_To_SpeechState extends State<Text_To_Speech> {
final FlutterTts tts = FlutterTts();
final TextEditingController tts_controller = TextEditingController();
@override
void initState() {
super.initState();
tts.setLanguage("ko-KR");
tts.setSpeechRate(0.5);
tts.setVolume(0.6);
tts.setPitch(1);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("TTS"),
),
body: Container(
child: Column(
children: [
SizedBox(
height: 150,
),
TextField(
controller: tts_controller,
),
SizedBox(height: 10,),
ElevatedButton(
onPressed: () => tts.speak(tts_controller.text),
child: Text("재생"),
),
],
),
),
);
}
}