カテゴリ: Flutterの機能拡張 更新日: 2025/11/01

Flutterで音声認識・音声再生を実装する方法まとめ【初心者向けガイド】

281
Flutterで音声認識・音声再生を実装する方法まとめ

先生と生徒の会話形式で理解しよう

生徒

「Flutterでスマホに話しかけた内容をテキストにして、さらに音声として再生する機能って作れますか?」

先生

「もちろん可能です。Flutterには音声認識(Speech to Text)や音声再生(Text to Speech)をサポートするパッケージが揃っていますよ。」

生徒

「それって、どんなパッケージを使って、どうやって実装するんですか?」

先生

「では、音声認識と音声再生の両方をFlutterで実装する基本的な流れを順に見ていきましょう。」

1. Flutterで音声認識を使うには?

1. Flutterで音声認識を使うには?
1. Flutterで音声認識を使うには?

Flutterで音声認識(Speech to Text)を実現するには、speech_to_textパッケージを使用します。このパッケージはユーザーの音声をテキストに変換してくれます。

まずはpubspec.yamlに以下の依存関係を追加します。


dependencies:
  flutter:
    sdk: flutter
  speech_to_text: ^6.1.0

次に、音声認識の初期化・開始・停止の基本的なコードを見てみましょう。


import 'package:speech_to_text/speech_to_text.dart' as stt;

class SpeechRecognition {
  late stt.SpeechToText _speech;
  bool _isListening = false;
  String _text = '';

  void initSpeech() async {
    _speech = stt.SpeechToText();
    await _speech.initialize();
  }

  void startListening() async {
    _isListening = true;
    _speech.listen(onResult: (result) {
      _text = result.recognizedWords;
    });
  }

  void stopListening() {
    _isListening = false;
    _speech.stop();
  }
}

音声認識を使うにはマイクのパーミッション許可が必要です。Androidの場合はAndroidManifest.xmlに以下を追加します。


<uses-permission android:name="android.permission.RECORD_AUDIO"/>

2. Flutterで音声再生(Text to Speech)を実装するには?

2. Flutterで音声再生(Text to Speech)を実装するには?
2. Flutterで音声再生(Text to Speech)を実装するには?

音声再生(Text to Speech)には、flutter_ttsパッケージを使います。このパッケージは、指定したテキストを音声に変換して読み上げる機能を提供します。

pubspec.yamlに以下を追加します。


dependencies:
  flutter_tts: ^3.6.3

Text to Speechの基本的な使用例は次の通りです。


import 'package:flutter_tts/flutter_tts.dart';

class TextToSpeech {
  final FlutterTts _flutterTts = FlutterTts();

  Future<void> speak(String text) async {
    await _flutterTts.setLanguage("ja-JP");
    await _flutterTts.setPitch(1.0);
    await _flutterTts.speak(text);
  }

  Future<void> stop() async {
    await _flutterTts.stop();
  }
}

このようにすれば、ユーザーの話した内容をテキスト化し、それを音声で再生するアプリを構築できます。

3. 音声認識と音声再生を連携させる

3. 音声認識と音声再生を連携させる
3. 音声認識と音声再生を連携させる

音声認識した結果をそのまま音声再生に渡すことで、話した内容をそのまま返すアプリが作れます。以下は連携の簡易的な例です。


class VoiceAssistant {
  final SpeechRecognition speech = SpeechRecognition();
  final TextToSpeech tts = TextToSpeech();

  void processVoice() async {
    speech.initSpeech();
    speech.startListening();

    await Future.delayed(Duration(seconds: 5));
    speech.stopListening();

    await tts.speak(speech._text);
  }
}

このコードでは、5秒間ユーザーの音声を聞き取り、その内容を自動的に読み上げています。

Flutterを「実務レベル」で使えるようになりたい人や、 iPhone / Android両対応アプリ開発の流れをまとめて学びたい人には、 定番の実践書がこちらです。

Flutter実践開発をAmazonで見る

※ Amazon広告リンク

4. UIへの組み込みと状態管理

4. UIへの組み込みと状態管理
4. UIへの組み込みと状態管理

実際にFlutterアプリに組み込むには、StatefulWidgetを使ってボタンを配置し、マイクボタンを押すと録音開始、テキスト表示、再生ボタンで読み上げ、というようなインターフェースにします。

また、音声認識のステータス(開始中・録音中・停止中)などをユーザーに分かりやすく表示することがUX上非常に重要です。

5. 実機デバイスでのテストに注意

5. 実機デバイスでのテストに注意
5. 実機デバイスでのテストに注意

音声系の機能は、FlutterのエミュレータやiOSのシミュレータでは正常に動作しないことがあります。必ず実機デバイスでテストを行いましょう。

また、iOSの場合はInfo.plistにマイクと音声合成の使用許可を明記する必要があります。


<key>NSMicrophoneUsageDescription</key>
<string>音声認識のためにマイクを使用します。</string>
<key>NSSpeechRecognitionUsageDescription</key>
<string>音声認識を使用します。</string>

6. 音声認識と音声再生の活用例

6. 音声認識と音声再生の活用例
6. 音声認識と音声再生の活用例

Flutterの音声認識・再生機能は以下のようなアプリに活用できます。

  • 音声アシスタントアプリ
  • 読み上げ付き日記アプリ
  • 高齢者向け音声操作アプリ
  • 言語学習用の聞き取り・発音練習アプリ

アイデア次第で、音声の入出力機能はFlutterアプリに非常に大きな価値を加えてくれます。

Flutterの機能拡張の一覧へ
新着記事
FlutterのMVP・MVVMアーキテクチャの違いと使い分け
FlutterのMVP・MVVMアーキテクチャの違いと使い分けを初心者向けに解説!
オニオンアーキテクチャの基本とFlutterでの適用例
オニオンアーキテクチャの基本とFlutterでの適用例を初心者向けに解説
クリーンアーキテクチャとは?Flutterでの導入メリット
クリーンアーキテクチャとは?Flutterでの導入メリットをやさしく解説
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金まとめ
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金を初心者向けに徹底解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク