前回は、Waveファイルに起こしたデータの文字起こしに挑戦してみましたが、今回はリアルタイムでマイク音声 文字起こしする方法に挑戦してみましたので、その方法についてシェアいたします。
今回は、前回までに記事にした二つの合わせ技でリアルタイム文字起こし環境を作成しています。
今回の記事内にURLを張り付けておくので興味ある方はそちらを見てみてください。
使用ライブラリ
まずは、今回のプログラムに必要なライブラリです。
- pyaudio
- speech_recognition
今回のライブラリはすでにインストール済みですので、すいませんが、画像はありません。
インストールには以下のコマンドを入力することでインストール可能です。
pip install XXX
※XXXに上記のライブラリ名を入れてください。
プログラムと実行結果
ではいつも通りプログラムの全体です。
import time
import speech_recognition
import pyaudio
SAMPLERATE = 44100
def callback(in_data, frame_count, time_info, status):
global sprec
try:
audiodata = speech_recognition.AudioData(in_data,SAMPLERATE,2)
sprec_text = sprec.recognize_google(audiodata, language='ja-JP')
print(sprec_text)
except speech_recognition.UnknownValueError:
pass
except speech_recognition.RequestError as e:
pass
finally:
return (None, pyaudio.paContinue)
def main():
global sprec
sprec = speech_recognition.Recognizer() # インスタンスを生成
# Audio インスタンス取得
audio = pyaudio.PyAudio()
stream = audio.open( format = pyaudio.paInt16,
rate = SAMPLERATE,
channels = 1,
input_device_index = 1,
input = True,
frames_per_buffer = SAMPLERATE*2, # 2秒周期でコールバック
stream_callback=callback)
stream.start_stream()
while stream.is_active():
time.sleep(0.1)
stream.stop_stream()
stream.close()
audio.terminate()
if __name__ == '__main__':
main()
実行結果は以下です。
プログラムを実行して、声をマイクに入力したところです。

続いてはプログラムの解説ですが、解説は次ページにて記載します。
コメント