[025] 플러터 (Flutter) 배우기 - TTS(Text To Speech): 텍스트를 소리로 나타내기

2023. 1. 20. 13:41모바일어플개발/Flutter

반응형

안녕하세요~ totally 개발자입니다.

 

TTS(Text To Speech)

 

오늘 다룰 부분은 TTS(Text To Speech)입니다. TTS란 용어 그대로 텍스트를 소리로 나타내는 것입니다. 플러터 패키지를 사용하기 때문에 pubspec.yaml 파일에 다음처럼 명시해주시면 됩니다.

 

그 다음 flutter_tts.dart를 import 해줍니다.

10번째, 11번째 줄처럼 FlutterTts와 TextEditingController 인스턴스를 만들어줍니다.

 

다음으로는 13-20번째 줄처럼 initState 메소드를 만들어주어 초기화될 때 tts.setLanguage("ko-KR")과 tts.setSpeechRate(0.5)를 사용하여 언어와 언어를 말하는 속도를 지정해줍니다. 영어인 경우에는 "en-US"로 적으면 되며 속도는 0.0이 제일 느리고 1.0이 제일 빠릅니다. 보통 0.4에서 0.6 사이를 적는 것이 무난합니다.

 

마지막으로 아래처럼 위젯 구성을 마무리해줍니다. TextButton를 눌렀을 때 tts.speak(con.text)를 실행해서 재생되도록 해줍니다.

 

시뮬레이터를 통해 재생버튼을 눌렀을 때, 음성이 재생되는 것을 확인할 수 있습니다. 추가적인 메소드나 다른 사항들은 아래 링크에서 자세하게 확인해보실 수 있습니다. 감사합니다.

https://pub.dev/packages/flutter_tts

 

flutter_tts | Flutter Package

A flutter plugin for Text to Speech. This plugin is supported on iOS, Android, Web, & macOS.

pub.dev

 

[전체 소스 코드]

 

import 'package:flutter/material.dart';
import 'package:flutter_tts/flutter_tts.dart';
class TestView extends StatefulWidget {
@override
State<TestView> createState() => _TestViewState();
}
class _TestViewState extends State<TestView> {
final FlutterTts tts = FlutterTts();
final TextEditingController con = TextEditingController();
@override
void initState() {
super.initState();
// 언어 설정
tts.setLanguage("ko-KR");
// 속도지정 (0.0이 제일 느리고 1.0이 제일 빠름)
tts.setSpeechRate(0.5);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Test Title"),
),
body: Container(
child: Column(
children: [
TextField(
controller: con,
),
TextButton(
onPressed: () => tts.speak(con.text),
child: Text("재생버튼"),
),
],
),
),
);
}
}
view raw 025.dart hosted with ❤ by GitHub

 

 

반응형