見出し画像

【音声処理】音声文字起こしツール サンプルコード

・業務効率化には何すればいいのかな?
・Pythonで自動化ツールを作成できると聞くけど、具体的に何が作れるの?
・自動化のアイデアが出てこない

こんな悩みを抱えている人に向けて、Pythonで作れる自動化ツールを解説しています。

音声処理のツールについて、こちらの記事で紹介しています。
 ⇒【画像・音声・動画】Pythonで作れる自動化ツールの具体例アイデア13選【業務効率化】

本記事では、音声文字起こしツールのサンプルコードを公開しています。

サンプルコードは、自分で作成するのが難しい方や、ツール作成の手間を減らしたい方にお勧めです。ぜひご活用ください。

【関連記事】
【業務効率化】Pythonで作れる自動化ツール具体例・アイデア53選!
【Pythonで業務効率化】自動化ツールを自作する方法を5STEPで解説!



アイデア「音声文字起こしツール」

概要

音声ファイルをテキストに自動変換し、書き起こしを生成

導入メリット

会議やインタビューの音声記録からテキストを自動生成し、書き起こしの手間を大幅に削減します。

ツール機能

音声ファイルを入力として受け取り、音声認識技術を用いてテキストデータに変換し、書き起こし結果を保存します。

必要技術

SpeechRecognition:様々な音声認識エンジンを用いた音声からテキストへの変換をサポート

処理フロー

  1. ユーザーが書き起こしを行いたい音声ファイル(wav)の保存先を指定

  2. 選択された音声ファイルを読み込み

  3. SpeechRecognitionを使用して音声データをテキストに変換

  4. 変換したテキストデータををテキストファイルとして出力


注意事項

著作権について

本ソースコードの著作権は、販売者に帰属します。
修正や改変は自由に行えますが、無断での複製、配布は法律で禁止されています。

ライセンスについて

本ソースコードは、個人利用及び商用利用が可能です。ただし、再販売や、本ソースコードを基にした派生作品の販売は禁止します。

返金について

デジタルコンテンツの性質上、購入後の返品や返金は原則として受け付けておりません。

使用上の免責事項

本ソースコードは予告なく変更や修正を行う場合があります。
本ソースコードの動作を保証するものではありません。
本ソースコードの使用から生じたいかなる直接的または間接的な損害に対しても、販売者は責任を負いません。
動作の不具合については、購入者自身の責任で対処してください。

サポートについて

本ソースコードに関するサポートは行っておりません。バグ報告や質問への対応は致しかねます。


事前準備

文字起こしする音声ファイル(wav)を変換用フォルダに保存します。
複数のファイルを保存しても変換できます。

!注意!
SpeechRecognitionでは、音声が長いと文字起こしできません。
およそ1分以内のファイルを使用してください。
長い音声ファイルを文字起こしする場合は、ファイルを分割してください。

ファイル分割機能付きのコードを記事にしました。
【音声処理】ファイル分割機能付き!音声文字起こしツール サンプルコード

音声ファイル(wav)を保存したフォルダのパスを確認してください。


ソースコード

import speech_recognition as sr
import os
from os.path import splitext

def load_audio_file(file_path):
    """
    音声ファイルを読み込む関数
    """
    recognizer = sr.Recognizer()
    with sr.AudioFile(file_path) as source:
        audio_data = recognizer.record(source)
    return audio_data

def transcribe_audio(audio_data):
    """
    音声データをテキストに変換する関数
    """
    recognizer = sr.Recognizer()
    try:
        text = recognizer.recognize_google(audio_data, language='ja-JP')
    except sr.UnknownValueError:
        return "音声を認識できませんでした。"
    except sr.RequestError:
        return "APIリクエストに失敗しました。"
    return text

def save_text(text, file_path):
    """
    テキストデータをテキストファイルに保存する関数
    """
    output_file_path = f"{splitext(file_path)[0]}.txt"
    with open(output_file_path, 'w') as file:
        file.write(text)

def process_files(directory):
    """
    指定されたディレクトリ内のすべての.wav音声ファイルを処理する関数
    """
    for filename in os.listdir(directory):
        if filename.endswith(".wav"):
            file_path = os.path.join(directory, filename)
            print(f"処理中: {file_path}")
            audio_data = load_audio_file(file_path)
            text = transcribe_audio(audio_data)
            save_text(text, file_path)
            print(f"保存完了: {splitext(file_path)[0]}.txt")

def main():
    # ここでユーザーからディレクトリのパスを受け取る
    directory_path = input("変換したい音声ファイルがあるディレクトリのパスを入力してください: ")
    process_files(directory_path)

if __name__ == "__main__":
    main()

最後まで読んでいただき、ありがとうございました!
参考のなったと思っていただけたら、
♡スキを押していただけると嬉しいです。

今後もサンプルコードを紹介する予定なので、
関心のある方は是非アカウントのフォローをお願いします!

この記事が気に入ったらサポートをしてみませんか?