Flutterを使用した音声からテキストへの変換方法


  1. SpeechRecognitionパッケージを使用する方法: SpeechRecognitionパッケージは、Flutterで音声認識を実現するための便利なツールです。以下の手順で使用できます。

まず、pubspec.yamlファイルにパッケージを追加します:

dependencies:
  speech_to_text: ^3.0.0

次に、以下のコードを使用して音声認識を実装します:

import 'package:speech_to_text/speech_to_text.dart' as stt;
stt.SpeechToText speech = stt.SpeechToText();
void startListening() {
  speech.listen(
    onResult: (stt.SpeechRecognitionResult result) {
      if (result.finalResult) {
        String transcription = result.recognizedWords;
        // テキストの処理を行う
      }
    },
  );
}
void stopListening() {
  speech.stop();
}
  1. Google Cloud Speech-to-Text APIを使用する方法: Google Cloud Speech-to-Text APIを使用すると、高度な音声認識機能を利用できます。以下の手順で使用できます。

まず、プロジェクトにGoogle Cloud Speech-to-Text APIを追加し、認証情報を取得します。次に、以下のコードを使用してAPIを呼び出します:

import 'package:googleapis/speech/v1.dart' as speech;
import 'package:googleapis_auth/auth_io.dart' as auth;
import 'package:http/http.dart' as http;
Future<String> transcribeAudio(String audioFilePath) async {
  final serviceAccount = auth.ServiceAccountCredentials.fromJson({
    "private_key": "your_private_key",
    "client_email": "your_client_email",
  });
  final client = await auth.clientViaServiceAccount(serviceAccount, speech.SpeechApi.speechScope);
  final speechToText = speech.SpeechApi(client);
  final audioFile = await http.ByteStream.fromBytes(await File(audioFilePath).readAsBytes());
  final audio = speech.RecognitionAudio()..content = await audioFile.read();
  final config = speech.RecognitionConfig()
    ..encoding = 'LINEAR16'
    ..sampleRateHertz = 16000
    ..languageCode = 'ja-JP';
  final response = await speechToText.recognize(speech.StreamingRecognitionConfig()
    ..config = config
    ..audio = audio);
  if (response.results != null && response.results!.isNotEmpty) {
    String transcription = response.results!.first.alternatives!.first.transcript!;
    // テキストの処理を行う
    return transcription;
  } else {
    return '';
  }
}

これらは、Flutterを使用して音声からテキストへの変換を行うためのいくつかの方法です。どちらの方法も使用するには、適切なパッケージの追加と必要な設定が必要です。使用する具体的な状況や要件に応じて、適切な方法を選択してください。