GoogleのSpeach APIを使えば 音声のテキスト変換が簡単にできるみたいだったので試してみました。
音声データ(mp3)を引数で指定して実行するとテキストファイルを生成することができるようにしてあります。
これを使えば会議の内容を録音→議事録作成なんかが効率よくできそうですね!
以下コードになります
(コードを実行するためには、あらかじめGoogle Speach APIの有効化・API Keyの取得まで済ませておく必要があります)
コマンドライン引数「--sound」で音声ファイル指定で実行できると思います。
import requests import json from pydub import AudioSegment import base64 import argparse parser = argparse.ArgumentParser() parser.add_argument("--sound") #parser.add_argument("--dir") args = parser.parse_args() bassdir = "/" str_api_key = "API Keyを指定" sound = AudioSegment.from_mp3(args.sound) sound.export(bassdir + "result.wav", format="wav") sound = AudioSegment.from_wav(bassdir + "result.wav") sound = sound.set_channels(1) sound.export(bassdir + "result.wav", format="wav") speech_file = bassdir + "result.wav" def stt(): str_url = "https://speech.googleapis.com/v1/speech:recognize?key=" str_headers = {'Content-Type': 'application/json; charset=utf-8'} url = str_url + str_api_key with open(speech_file, 'rb') as speech: speech_content = base64.b64encode(speech.read()) str_json_data = { "config": { "encoding": "LINEAR16", "sampleRateHertz": 44100, "languageCode": "ja-JP", "enableWordTimeOffsets": False }, "audio": { 'content': speech_content.decode('UTF-8') } } with open(args.dir + "result.json", 'w') as f: json.dump(str_json_data, f) jd = json.dumps(str_json_data) print("begin request") s = requests.Session() r = requests.post(url, data=jd, headers=str_headers) print("status code : ", r.status_code) print("end request") if r.status_code == 200: parsed = json.loads(r.text) sst_result = parsed["results"][0]["alternatives"][0]["transcript"] sst_result = sst_result return sst_result else: return "error" if __name__ == "__main__": result = stt() with open(bassdir + "/result.txt", mode='w') as f: f.write(str(result))