🎵
日本語の音声解析をやってみた
Google の SpeechRecognition を使って日本語の音声解析をやってみたのでまとめます。
データセットは Common Voiceの日本語音声を使っています。
SpeechRecognition は WAV/AIFF/FLAC にのみ対応しており、データセットは mp3 ファイルのため、変換する必要があります。
MP3ファイル -> WAVファイルへの変換
pydub を使って MP3 から WAV ファイルに変換します。
import glob
import pydub
# mp3 ファイル名の取得
mp3_files = glob.glob('cv-corpus-7.0-2021-07-21/ja/clips/*.mp3')
# データセットの音声ファイルが多いので50ファイルのみmp3への変換
for mp3_file in mp3_files[:50]:
sound = pydub.AudioSegment.from_mp3(mp3_file)
sound.export("wav/" + mp3_file.split("/")[-1][:-3] + "wav", format="wav")
音声解析
speech_recognition を使って音声解析し、文字おこしします。
# wav ファイル名の取得
r = speech_recognition.Recognizer()
wav_files = glob.glob(path + 'wav/*.wav')
# 音声解析、ただし10ファイルのみ
for wav_file in wav_files[:10]:
print(wav_file, end=" -> ")
with speech_recognition.AudioFile(wav_file) as source:
audio = r.record(source)
print(r.recognize_google(audio, language='ja-JP'))
解析結果は以下のとおりです。
/content/drive/MyDrive/talk/wav/common_voice_ja_20836343.wav -> 彼女は部屋に入ってベッドに横になった
/content/drive/MyDrive/talk/wav/common_voice_ja_20836344.wav -> 彼女は部屋に入ってベッドに横になった
/content/drive/MyDrive/talk/wav/common_voice_ja_20836341.wav -> この靴は古いです
/content/drive/MyDrive/talk/wav/common_voice_ja_20836336.wav -> 彼女は目を逸らした
/content/drive/MyDrive/talk/wav/common_voice_ja_20836337.wav -> この靴は古いです
/content/drive/MyDrive/talk/wav/common_voice_ja_20836342.wav -> 彼女は部屋に入ってベッドに横になった
/content/drive/MyDrive/talk/wav/common_voice_ja_20836340.wav -> この靴は古いです
/content/drive/MyDrive/talk/wav/common_voice_ja_20836339.wav -> この靴は古いです
/content/drive/MyDrive/talk/wav/common_voice_ja_20836335.wav -> 彼女は目を逸らした
/content/drive/MyDrive/talk/wav/common_voice_ja_20817635.wav -> どうすれば 漢字を覚えることができますか
下記URLに common_voice_ja_20836343.wav ファイルをおいてあるので興味があれば確認してみてください。
非常に高い精度で音声解析ができているのがわかります。
common_voice_ja_20836343.wav -> 彼女は部屋に入ってベッドに横になった
以上になります、最後までお読みいただきありがとうございました。
Discussion