Skip to content

Instantly share code, notes, and snippets.

@roflsunriz
Last active March 11, 2025 12:34
Show Gist options
  • Save roflsunriz/450d2a7aaf158cc989e84e7e845b08bb to your computer and use it in GitHub Desktop.
Save roflsunriz/450d2a7aaf158cc989e84e7e845b08bb to your computer and use it in GitHub Desktop.
speechRecognition_plan 音声認識プログラム実装仕様書

音声認識プログラム 実装仕様書

概要

本プログラムは、Pythonを用いてマイクからの音声をリアルタイムで認識し、テキストに変換するGUIアプリケーションです。英語と日本語の音声認識に対応し、認識結果をテキストフィールドに表示、クリップボードへのコピー、プレーンテキストファイルへの保存が可能です。ユーザビリティを向上させるため、直感的なアイコンボタンや動作ログ表示を備えます。

開発環境

  • 言語: Python 3.x
  • ライブラリ:
    • speech_recognition: 音声認識
    • pyperclip: クリップボード操作
    • pyaudio: マイク入力
    • tkinter: GUI構築
  • 依存: インターネット接続(Google Speech Recognition API使用)

機能要件

1. GUI構成

  • マイクアイコンボタン: 音声認識の開始を指示。
  • バツアイコンボタン: 音声認識のキャンセルを指示。
  • テキストフィールド: 認識した音声をリアルタイムで表示。
  • 動作ログフィールド: プログラムの動作状況(開始、終了、エラーなど)を表示。
  • クリップボードコピーボタン: 認識結果をワンクリックでクリップボードにコピー。
  • 保存ボタン: 認識結果をプレーンテキストファイルに保存。
  • 終了ボタン: プログラムを終了。
  • 言語選択: 英語(en-US)と日本語(ja-JP)のラジオボタン。

2. 音声認識の動作

  • 開始: マイクアイコンボタン押下で開始。
  • 終了条件:
    • バツアイコンボタン押下で手動キャンセル。
    • 5秒間の沈黙で自動終了。
  • リアルタイム表示: 認識中の音声を逐次テキストフィールドに反映。
  • クリップボードコピー:
    • 認識終了後、自動でクリップボードにコピー。
    • クリップボードコピーボタンで手動コピーも可能。

3. ログ表示

  • 動作ログフィールドに以下の情報を表示:
    • 認識開始時: "音声認識を開始しました"
    • 認識中: "認識中..."
    • 認識成功: "認識結果: [テキスト]"
    • 認識失敗: "音声を認識できませんでした"
    • エラー: "エラー: [詳細]"

4. ファイル保存

  • 保存ボタン押下で、認識結果をプレーンテキストファイル(例: output.txt)に保存。
  • 保存先はプログラム実行ディレクトリ。

5. 終了

  • 終了ボタン押下でプログラムを正常終了。

動作フロー

  1. プログラム起動時、GUIが表示される。
  2. ユーザーが言語を選択し、マイクアイコンボタンを押す。
  3. マイクがアクティブになり、音声認識が開始。動作ログに状況を表示。
  4. 音声が認識されると、テキストフィールドにリアルタイムで表示。
  5. 5秒沈黙またはキャンセルボタン押下で認識終了。
  6. 認識終了後、自動でクリップボードにコピー。
  7. ユーザーが必要に応じてクリップボードコピーボタンまたは保存ボタンを使用。
  8. 終了ボタンでプログラム終了。

設計仕様

GUIレイアウト

+-----------------------------+
| [マイク] [バツ] |
| 言語: [英語] [日本語] |
| +-----------------------+ |
| | テキストフィールド | |
| +-----------------------+ |
| +-----------------------+ |
| | 動作ログフィールド | |
| +-----------------------+ |
| [コピー] [保存] [終了] |
+-----------------------------+

音声認識設定

  • タイムアウト: 5秒(沈黙検出用)。
  • ノイズ調整: 開始時に1秒間の周囲ノイズを調整。

ファイル保存形式

  • 形式: プレーンテキスト(.txt
  • ファイル名: speech_output_[タイムスタンプ].txt(例: speech_output_20250310_123456.txt

注意点

  • マイクが接続されていない場合、エラーメッセージを表示。
  • インターネット接続がない場合、Google APIが利用できないためエラー表示。
  • 日本語認識の精度は発音や環境に依存。

拡張性

  • 将来的に他の音声認識エンジン(例: DeepSpeech)の統合を検討可能。
  • ログをファイルに保存するオプションを追加可能。

スケジュール

  • 設計: 1日
  • 実装: 2日
  • テスト: 1日
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment