// // //

Pythonを使って日本語から多言語への自動翻訳をやってみる。自動翻訳=音声認識+機械翻訳+音声合成

auto_translation_000 Programming
auto_translation_000
この記事は約5分で読めます。

これまでの記事で、Pythonを使って、音声認識音声合成機械翻訳のやり方を説明してきました。今回はこれらの応用として、Pythonを自動翻訳(自動音声翻訳)の実装を解説していきたいと思います。

ここで言う自動翻訳とは、音声で入力されたデータを音声認識にてテキストデータに変換し、それを機械翻訳にて翻訳したものを音声合成にて音声として出力するものです。

それでは早速始めていきましょう。また、これまでの音声認識、音声合成、機械学習に関するぼくの記事を読まれていない方は、以下のリンクから参照して下さい。

はじめに

speech_recognition_02
speech_recognition_02

この記事を読んで、できるようになる事・理解できる事

Mac上(Windows上でも大丈夫のはず。)でPythonを使って、音声にて入力した日本語を音声認識、機械翻訳を得て、英文に翻訳し、それを音声合成にて音声に変換し直し、スピーカーにて再生します。

そのためのコードも公開しますので、英語から日本語、また、パラメーターを調整することで、フランス語から中国語等多言語への翻訳にも対応できます。

この記事を読んでほしい方、想定対象者

今回ご紹介するシステムでは、タイムラグ等もあるため、正直なところ、本格的な実用目的での使用には改良が必要かと思います

従いまして、本記事の想定読者には、機械翻訳、機械学習に興味があり、実際のコードの実装を行いたい方、または、機械学習関連の子どもを対象とした教育を行っており、そのための適当な教材を探しておられる方などを、想定しています。

事前に読んでほしい記事・関連記事

本記事は上記の記事で説明したことを一連の動きに合体しています。ただ、まずは本記事を読まれて、興味を持たれてから、上記の記事を参照されてももちろん結構です。

ただ、Pythonにあまり詳しくない方は、コードを実装される前には、必ず上記の記事に目を通してください。

コードの実装

translation_05
translation_05

それでは、実際のコードを書いていきましょう。まず初めに今回使うライブラリーをインストールする必要があります。
また、以下のコードはJupyter LabやJupyter Notebookからの入力を想定しています。ターミナルから直接入力する場合は、各行の頭の"!"を省略して下さい。

上記で音声認識に必要なライブラリーのインストールを行います。

上記で音声合成に必要なライブラリーのインストールを行います。

上記で翻訳に必要なライブラリーのインストールと行います。
以下のコマンドを実行してすでにインストールされているライブラリーの一覧を出力して、今回インストールしてライブラリーが入っているか確認しましょう。

それでは、本体コードを以下に示します。

ここでは、ループで質問を繰り返し、「終わり」という音声入力によりループから抜け出し、処理を終えます。また、実行にはインターネットの接続環境が必要です。

言語の選択方法

それでは、それぞれのプロセスでの言語の選択方法について、簡単に説明します。

入力音声言語の選択

具体的には、本体コードの39行目の変数"language"の値で選択しています。コードでの値は"ja-JP"ですが、初めの"ja"は日本語を、次の"JP"は日本国を表します。
つまり、一例として、"en-US"はアメリカで話される英語を、"en-GB"はイギリスで話される英語を示します。

これらの記号は数が多く、ここでの記述には適しませんので、以下のリンクを参照して下さい。

Google Cloud Speech-to-Text 言語サポート

翻訳言語の選択

翻訳言語の選択はコードの23行で行なっています。変数"src"の値が入力言語、"dest"の値が出力言語を表します。

ここで用いる言語とコードの一覧表は以下のリンクから参照できます。

Pythonを使って多言語の機械翻訳をやってみる

出力音声言語の選択

出力音声の言語は言語単位でももちろんできますが、ばくは声(Voice.id)にて選択する事をお勧めします。以下にそれの一覧表を示します。

これらは、コードの15行目のvoices[ ]のカギカッコの中の数字で指定しています。上のコードでは、18が指定されており、以下の声(name=Kyoko)が選択されています。

言語のコードは入力音声言語の選択でご紹介したリンクから探していただき、それに会う声を選択して下さい。

まとめ

translation_03
translation_03

Pythonの長所の一つに強力なライブラリーを数多く持っていることが挙げられますが、今回はそれを実感していただけたのではないでしょうか。

音声認識、翻訳、音声合成という複雑な機能をこんなにも簡単なコードで実装できることは、一昔前ならば、考えられないことだと思います。

今回ご紹介した以外にも、もっとたくさんのライブラリーがPythonには用意されています。機会があれば、また、ご紹介できればと思います。

それでは最後までお付き合いいただき、ありがとうございました。さようなら。

コメント