WEBサイト制作・アプリ開発・システム開発・ブランディングデザイン制作に関するご相談はお気軽にご連絡ください。
構想段階からじっくりとヒアリングし、お客様の課題にあわせたアプローチ手法でお客様の“欲しかった”をカタチにしてご提案いたします。
Blog スタッフブログ
Flutter
システム開発
ひとくちコードスニペット
[Flutter]Flutterでテキストを読み上げるコードスニペット
こんにちは、株式会社MIXシステム開発担当のBloomです。
今回はFlutterで利用できるコードスニペットを紹介します。まずはこちらのパッケージを導入しましょう。
flutter pub add flutter_tts
次にiOS環境へ権限の記載を行いましょう。
<plist version="1.0">
<dict>
<key>NSSpeechRecognitionUsageDescription</key>
<string>音声合成を使用する理由を書きます</string>
</dict>
</plist>
これで音声読み上げ機能を利用する準備ができました。このまま画面を実装しましょう。
import 'package:flutter/material.dart';
import 'dart:io';
import 'package:flutter_tts/flutter_tts.dart';
class VoicePage extends StatefulWidget {
@override
_VoicePageState createState() => _VoicePageState();
}
class _VoicePageState extends State<VoicePage> {
final FlutterTts _flutterTts = FlutterTts();
Future<void> _speak(String text) async {
await _flutterTts.setLanguage('ja-JP');
await _flutterTts.setPitch(1.0); // 声の高さ(0.5〜2.0)
await _flutterTts.setSpeechRate(0.5); // 話す速さ(0.0〜1.0)
await _flutterTts.speak(text);
}
@override
void dispose() {
_flutterTts.stop();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('読み上げ機能')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton.icon(
icon: Icon(Icons.mic),
label: Text('テスト発話'),
onPressed: () => _speak("テスト発話"),
),
],
),
),
);
}
}
dispose時にしっかり停止処理を行うことを忘れないようにしましょう。
これだけで発話機能の実装ができました。良かったですね。