Pythonのspeech_recognitionの使い方|音声認識を10分で実装する

スポンサーリンク

こんにちわ 今日は、プログラミング言語Pythonの「音声認識」ライブラリを使って、音声をテキストに変換することについて勉強しましょう。

では、はじめましょう。

スポンサーリンク

音声認識入門

音声認識とは、人間の音声を自動的に認識することと定義され、AlexaやSiriのようなアプリケーションを作る際に最も重要なタスクの1つとして認識されています。

Pythonには音声認識機能をサポートするライブラリがいくつか用意されています。

ここでは、最もシンプルで習得しやすい「音声認識」ライブラリを使用します。

音声認識モジュールのインポート

最初のステップは、いつものように、必要なライブラリをインポートすることです。

今回は speech_recognition ライブラリをインポートすればよい。

import speech_recognition as SR

もし、この文でエラーが出る場合は、pipコマンドを使ってライブラリをインストールする必要があるかもしれません。

Pythonで音声認識を実装する

音声をテキストに変換するためには、 speech_recognition モジュールの Recognizer クラスを使用して、さらに処理するために必要なすべての関数を含むオブジェクトを作成する必要があります。

1. オーディオの読み込み

続ける前に、オーディオファイルをダウンロードする必要があります。

ここでは、Emma Watsonのスピーチを使用しました。

音声ファイルをダウンロードし、音声を認識するのに最適な wav フォーマットに変換します。

ただし、Pythonファイルと同じフォルダに保存してください。

音声を読み込むには、AudioFile関数を使用します。

この関数はファイルを開き、その内容を読み込んで、すべての情報を source. というAudioFileのインスタンスに格納します。

このソースをトラバースして、以下のことを行います。

    1. すべてのオーディオは、adjust_for_ambient_noise関数を使って除去することができるいくつかの noise を含んでいます。
    1. record メソッドを使用して、オーディオファイルを読み込み、特定の情報を変数に保存して、後で読み込むことができます。

オーディオを読み込むための完全なコードは以下のとおりです。

1
2
3
4
5
6
7
import speech_recognition as SR
SR_obj = SR.Recognizer()
 
info = SR.AudioFile('speech.wav')
with info as source:
    SR_obj.adjust_for_ambient_noise(source)
    audio_data = SR_obj.record(source,duration=100)

ここで、durationというパラメータを指定していますが、これは長い音声を認識するのに多くの時間がかかるためです。

そのため、音声の最初の100秒だけを取り込むことにします。

2. 音声からのデータ読み込み

音声の読み込みに成功したので、次は recognize_google() メソッドを呼び出して音声を認識させます。

このメソッドは、インターネットの接続速度によって数秒かかることがあります。

処理後、このメソッドはプログラムが最初の100秒間で認識できた最良の音声を返します。

以下はそのコードです。

1
2
3
4
5
6
7
8
import speech_recognition as SR
SR_obj = SR.Recognizer()
 
info = SR.AudioFile('speech.wav')
with info as source:
    SR_obj.adjust_for_ambient_noise(source)
    audio_data = SR_obj.record(source,duration=100)
SR_obj.recognize_google(audio_data)

出力されるのは、音声の中からかなり良い文章を集めたものであることがわかります。

もっと機能を増やせば精度は上がりますが、今のところ基本的な機能で十分です。

"I was appointed 6 months and I have realised for women's rights to often become synonymous with man heating if there is one thing I know it is that this has to stop someone is by definition is the belief that men and women should have equal rights and opportunities is the salary of the economic and social policy of the success of a long time ago when I was 8 I was confused sinkhole but I wanted to write the play Aise the width on preparing for the 14 isostasy sacralized elements of the media 15 my girlfriend Statue of Liberty sports team because they don't want to pay monthly 18 18 Mai Mela friends were unable to express their feelings I decided that I am business analyst at the seams and complicated to me some recent research has shown me feminism has become"

まとめ

この記事では、音声から音声を認識し、それを画面に表示する方法について学びました。

音声認識は非常に奥が深い概念であり、今回学んだことはそのごく一部であることを申し添えます。

お読みいただきありがとうございました。

タイトルとURLをコピーしました