글을 기계가 읽어주는 걸 TTS라고 합니다.
네이버 클로바에서 많이 볼 수 있습니다
라이브러리를 사용해서 TTS를 구현하고자 합니다.
POPULARITY가 99%입니다.
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
패키지 적용
flutter pub add flutter_tts
안드로이드는 21이상에서 작동하고 맥은 10.15 이상에서 작동하니 Readme를 읽어보시기 바랍니다.
minSdkVersion
를 전체 검색 또는 빌드그래들에서 수정하시면 됩니다.
옵젝 씨로 만든 iOS프로젝트라면 readme를 확인하시어 네이티브 코드를 설정해야 합니다.
그 이외로는 문제없이 바로 코딩하면 되겠습니다.
예제는 아래와 같습니다.
import 'package:flutter/material.dart';
import 'package:flutter_tts/flutter_tts.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: TTSPage(),
);
}
}
class TTSPage extends StatefulWidget {
@override
_TTSPageState createState() => _TTSPageState();
}
class _TTSPageState extends State<TTSPage> {
FlutterTts flutterTts;
String textToSpeak = 'Hello, Flutter TTS!';
@override
void initState() {
super.initState();
flutterTts = FlutterTts();
}
Future<void> speak() async {
await flutterTts.setLanguage('en-US'); // 언어 설정
await flutterTts.setPitch(1.0); // 음성 높낮이 설정
await flutterTts.setSpeechRate(1.0); // 음성 속도 설정
await flutterTts.speak(textToSpeak); // 텍스트 음성 변환 및 재생
}
@override
void dispose() {
flutterTts.stop(); // 페이지 종료 시 TTS 중지
flutterTts = null; // 메모리 해제
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter TTS Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(textToSpeak),
SizedBox(height: 20),
ElevatedButton(
onPressed: speak,
child: Text('Speak'),
),
],
),
),
);
}
}
뮤트 모드일때 사운드가 재생되어야 한다면 아래의 글을 참고하세요
2023.08.15 - [develop/Flutter] - Flutter Tts 사일런트 모드일때 사운드 재생 안됨 해결하기 iOS AudioCategory 구분하기
Flutter Tts 사일런트 모드일때 사운드 재생 안됨 해결하기 iOS AudioCategory 구분하기
tts 기능을 개발하고 실기기에 물려서 테스트할 때는 잘 되더니 테스트플라이트에 올려서 확인하니 tts가 안나와서 당황스러웠습니다. 그래서 사운드를 키우고 시도했는데 안돼서 버그인가 했는
devfart.tistory.com
'develop > Flutter' 카테고리의 다른 글
Flutter Setting 화면 만들기 UI 코드 - settings_ui (0) | 2023.08.24 |
---|---|
Flutter iOS처럼 디자인하고 동작하게 만들기 - Cupertino (0) | 2023.08.21 |
Flutter Tts 사일런트 모드일때 사운드 재생 안됨 해결하기 iOS AudioCategory 구분하기 (0) | 2023.08.15 |
VSCode MARK 하이라이팅 하기 키워드 커스텀 Keyword [Xcode 처럼] (0) | 2023.08.09 |
Flutter FutureBuilder 사용하기 비동기 대응하기 with. Listview (0) | 2023.08.07 |