PythonとGoogle APIを使用した音声AI
こんにちは
最近では、このアイデアはロシア語で「話し手」を作るというアイデアを思いつきました。 私の頭の中には、次のような簡単なスキームがありました。
1)マイクからの音声を認識する
2)より合理的な答えを考え出す。
この時点で多くの興味深いことができます。
たとえば、物理的ではなく、何かの制御を実装します。
3)この答えを音声に変換して再現します。
最も興味深いのは、これらすべての点で、ライブラリがPythonで見つかったことです。
結果は、選ばれた話し言葉からほとんど独立した束でした。
音声認識
音声認識
このライブラリは、多くの一般的な音声認識サービス/ライブラリのラッパーです。
なぜなら ライブラリのリストに示されているすべてのサービスの中で、Google Speech Recognitionが最初に機能し、今後も使用しました。
音声処理
チャッターボット
ライブラリは機械学習法を使用します。 トレーニングは、対話形式のデータセットで行われます。
チャッターボットライブラリの学習プロセス
この単純な形式のファイルは、トレーニングデータソースとして使用できます。
実際、これらは次の形式のダイアログのセットです。
- - - ... -
英語の場合、Ubuntu Dialog Corpusからダイアログを取得するトレーニングクラスとTwitterからダイアログを取得するトレーニングクラスがあります。
残念ながら、ロシア語の場合、Ubuntu Dialog Corpus(同じボリュームの)に代わるものは見つかりませんでした。 同じTwitterTrainerでも動作するはずです。
実験として、私は学習するとき、最初のボリュームの戦士と平和からのダイアログを使用しようとしました。
面白くなりましたが、ありそうにないため、 そこの対話は、しばしば小説の特定のキャラクターを対象としています。
大量のデータがなければ、ボットから興味のある人を見つけることは難しいため、ダイアログの適切なベースの検索が進行中です。
chatterbotライブラリは、「LogicAdapter」のセットも提供します。 たとえば、答えをフィルタリングしたり、現在の時間をカウントしたり発言したりするようにボットに教えることができます。
ライブラリは非常に柔軟性があり、トレーニングおよび論理モジュール用の独自のクラスを作成できます。
音声合成と再生
Google Text to Speech
このライブラリは、文字列を音声付きのmp3ファイルに変換できます。 なぜなら Googleはこのライブラリの背後にあるため、ロシア語を含む多くの言語を選択できます。
最初の成功
プロジェクトコード
利用可能な場所: GHub
すぐに、Python用に別の仮想環境を作成することをお勧めします。
たとえば、 condaを使用します 。
conda create --name speech_ai source activate speech_ai conda install python=3.5
上記のライブラリセットを使用した実験には適切です。
- python 3(Python 2のように、非ASCII文字で問題がないため)
サイトの指示に従ってパッケージをインストールします。
- Google Text to Speech
- 音声認識
- チャッターボット
- PyGame (合成音声を再生するには)
また、SpeechRecognitionをインストールするときに、1つの依存関係(PyAudio)を支援する必要がある場合があります。
sudo apt-get install python-pyaudio python3-pyaudio pip3 install pyaudio
chatterbotは、MongoDBを使用して本番環境で作業することをお勧めします。
デフォルトでは、Jsonファイルはデータストアとして使用されます。これにより、中規模のサンプルでのトレーニングが複数回遅くなります。
次は?
考えから:
- Googleに検索クエリアダプターを追加するなどして、ボットのロジックを多様化するため
- たとえば、ここでコンピュータビジョンを使用して、見たオブジェクトや通りかかった人の名前を声に出す
- 状態マシンで感情にボットを追加する
- Ubuntu Dialog Corpusでボットをトレーニングしてみてください
- ロボット工学でも同様に使用(スマートホーム用)