Pythonは様々な用途に使われる汎用的なプログラミング言語であるが、音声認識にも利用することができる。Pythonには音声認識のためのライブラリが複数存在し、それらを利用することで簡単に音声認識機能を実装することができる。

PyAudio

PyAudioはPythonで音声処理を行うためのライブラリであり、マイクからの音声の録音や音声の再生、録音された音声の保存などができる。以下はPyAudioを用いた録音の例である。

import pyaudio
import wave

FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
CHUNK = 1024
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

audio = pyaudio.PyAudio()

stream = audio.open(format=FORMAT, channels=CHANNELS,
                rate=RATE, input=True,
                frames_per_buffer=CHUNK)

print("録音中...")

frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
    frames.append(data)

print("録音終了")

stream.stop_stream()
stream.close()
audio.terminate()

waveFile = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
waveFile.setnchannels(CHANNELS)
waveFile.setsampwidth(audio.get_sample_size(FORMAT))
waveFile.setframerate(RATE)
waveFile.writeframes(b''.join(frames))
waveFile.close()

SpeechRecognition

SpeechRecognitionはPythonで音声認識を行うためのライブラリであり、Google Speech Recognition APIやCMU Sphinx、Microsoft Bing Voice Recognitionなどを利用して音声認識を行うことができる。以下はSpeechRecognitionを用いた音声認識の例である。

import speech_recognition as sr

r = sr.Recognizer()

with sr.AudioFile('output.wav') as source:
    audio = r.record(source)

try:
    print("音声認識結果: " + r.recognize_google(audio, language='ja-JP'))
except sr.UnknownValueError:
    print("音声を理解できませんでした")
except sr.RequestError as e:
    print("エラーが発生しました: {0}".format(e))

まとめ

Pythonを利用して音声認識を行うことができる。PyAudioを用いることで音声の録音や再生、保存などを行い、SpeechRecognitionを用いることで音声認識を行うことができる。これらのライブラリを利用することで簡単に音声認識機能を実装することができる。