Flutter TTS는 Flutter 애플리케이션에서 텍스트 음성 변환 기능을 가능하게 하는 크로스 플랫폼 플러그인입니다. Android, iOS, Web, macOS, Windows 등 여러 플랫폼을 지원하여 개발자가 앱에 음성 출력을 원활하게 통합할 수 있도록 합니다. 간단한 API를 제공하여 텍스트를 말하는 오디오로 변환할 수 있으며, 접근성 기능, 음성 보조 도구, 상호작용 학습 도구에 적합합니다. 각 플랫폼의 네이티브 음성 합성 엔진을 활용하여 신뢰할 수 있는 성능과 자연스러운 목소리를 제공합니다.
사용 사례
접근성 기능
음성 안내 내비게이션
교육 앱
인터랙티브 챗봇
오디오 피드백 시스템
주요 기능
크로스 플랫폼 지원
간단한 API 통합
내장 음성 엔진 사용
사용자 정의 가능한 음성 파라미터
실시간 텍스트 재생
적합한 대상
접근성 있는 앱을 개발하는 개발자
교육 소프트웨어 제작자
음성 보조 기능 통합
음성 피드백이 필요한 앱
고려 사항
모바일에서 플랫폼별 권한이 필요합니다
음성 사용 가능 여부는 기기마다 다릅니다
웹에서의 사용자 정의가 제한적
성능은 네이티브 엔진에 따라 달라집니다
iOS 및 Android에서 사용자 권한이 필요할 수 있습니다
원본 README
연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.
Text To Speech
A flutter text to speech plugin (Swift,Kotlin)
Features
[x] Android, iOS, Web, Windows & macOS
[x] speak
[x] stop
[x] get languages
[x] set language
[x] set speech rate
[x] set speech volume
[x] set speech pitch
[x] get voices
[x] set voice
[x] Android, iOS, Web & macOS
[x] is language available
[x] Android, iOS, Web
[x] speech marks (requires iOS 7+, Android 26+, and default voice engine for web)
Progress updates are only supported for native speech synsthesis. Use the default engine to ensure support for progress updates. Chromium#41195426
Android
Change the minimum Android sdk version to 21 (or higher) in your android/app/build.gradle file.
minSdkVersion 21
Update the Kotlin Gradle Plugin Version
Change the verision of the Kotlin Gradle plugin to 1.9.10.
If your project was created with a version of Flutter before 3.19, go to the android/build.gradle file and update the ext.kotlin_version:
ext.kotlin_version = '1.9.10'
Otherwise go to android/settings.gradle and update the verion of the plugin org.jetbrains.kotlin.android:
id "org.jetbrains.kotlin.android" version "1.9.10" apply false
Android TTS does not support the pause function natively, so we have implemented a work around. We utilize the native onRangeStart() method to determine the index of start when pause is invoked. We use that index to create a new text the next time speak is invoked. Due to using onRangeStart(), pause works on SDK versions >= 26. Also, if using start and end offsets inside of setProgressHandler(), you'll need to keep a track of them if using pause since they will update once the new text is created when speak is called after being paused.
await flutterTts.pause()
iOS
There's a known issue with integrating plugins that use Swift into a Flutter project created with the Objective-C template. Flutter#16049
To set audio category and options with optional mode (iOS only). The following setup allows background music and in-app audio session to continue simultaneously: