Pythonを使って音声ファイルから会議の議事録作成を自動化

会議の議事録作成は、時間と手間がかかるタスクですが、Pythonを使うことで自動化できます。この記事では、Pythonを使って会議の議事録作成を自動化する方法について、具体例を交えて解説いたします。

 

moun45.hatenablog.com

 

必要なライブラリのインストール

議事録作成を自動化するためには、音声認識やテキスト処理のライブラリを使用します。主に使用するライブラリは、speech_recognitionpydub、およびnltkです。これらのライブラリをインストールしましょう。

pip install speechrecognition
pip install pydub
pip install nltk

音声データの準備

まず、会議の音声データを準備します。音声ファイルはMP3やWAV形式で用意してください。音声ファイルをPythonで処理できる形式に変換するために、pydubを使用します。

from pydub import AudioSegment

audio = AudioSegment.from_mp3("meeting_audio.mp3")
audio.export("meeting_audio.wav", format="wav")

音声認識によるテキスト化

次に、音声認識を使用して音声データをテキストに変換します。speech_recognitionライブラリを使用して、音声ファイルを読み込み、認識します。

import speech_recognition as sr

recognizer = sr.Recognizer()

with sr.AudioFile("meeting_audio.wav") as source:
audio_data = source.record()
try:
text = recognizer.recognize_google(audio_data, language="ja-JP")
print(text)
except sr.UnknownValueError:
print("音声を認識できませんでした")
except sr.RequestError as e:
print(f"音声認識サービスにアクセスできませんでした: {e}")

テキストの整形と要約

取得したテキストを整形し、議事録の形式にまとめます。nltkライブラリを使用して、テキストの分割や要約を行います。

import nltk
nltk.download('punkt')

from nltk.tokenize import sent_tokenize

# テキストを文ごとに分割
sentences = sent_tokenize(text)

# 整形された議事録の作成
minutes = "会議の議事録:\n"
for i, sentence in enumerate(sentences):
minutes += f"{i+1}. {sentence}\n"

print(minutes)

整形された議事録の保存

最後に、整形された議事録をファイルに保存します。これにより、後で簡単にアクセスできるようになります。

with open("meeting_minutes.txt", "w", encoding="utf-8") as file:
file.write(minutes)

定期的な議事録作成の自動化

定期的に議事録を自動作成する場合、Pythonscheduleライブラリを使用することをお勧めします。これにより、指定した時間に自動的に議事録を作成するスクリプトを実行できます。

まず、scheduleライブラリをインストールします。

pip install schedule

次に、スケジュールを設定し、議事録作成関数を定期的に実行するようにします。

import schedule
import time

def create_minutes():
with sr.AudioFile("meeting_audio.wav") as source:
audio_data = source.record()
try:
text = recognizer.recognize_google(audio_data, language="ja-JP")
sentences = sent_tokenize(text)
minutes = "会議の議事録:\n"
for i, sentence in enumerate(sentences):
minutes += f"{i+1}. {sentence}\n"
with open("meeting_minutes.txt", "w", encoding="utf-8") as file:
file.write(minutes)
print("議事録が作成されました")
except sr.UnknownValueError:
print("音声を認識できませんでした")
except sr.RequestError as e:
print(f"音声認識サービスにアクセスできませんでした: {e}")

# 毎週月曜日の9時に議事録を作成
schedule.every().monday.at("09:00").do(create_minutes)

while True:
schedule.run_pending()
time.sleep(1)

まとめ

Pythonを使った会議の議事録作成の自動化は、時間と労力を大幅に節約できます。speech_recognitionpydubを使用して音声データをテキストに変換し、nltkでテキストを整形することで、効率的に議事録を作成できます。また、scheduleライブラリを使用して定期的な自動化を実現することも可能です。これらの技術を活用して、会議の議事録作成を効率化しましょう。