コマンドラインで機械翻訳&音声化【translate-shell】

先日、コマンドラインでGoogle検索する方法を紹介しました。今回は、コマンドラインでGoogle翻訳する方法を紹介しましょう。

Translate Shellを使えば、コマンドラインから機械翻訳サービスを利用することができます。Google翻訳のほか、Bing翻訳、Yandex Translateなどにも対応しています。

ちょっとした翻訳なら、ブラウザを開かずにコマンドでやったほうが便利ですよ。翻訳された文を発音させることもできます。

Translate Shellのインストール

ディストリビューションによってはパッケージ化されているのですが、古いもバージョンだと動かなくなっていたりするので、最新のものをダウンロードしましょう。以下のコマンドで、「/usr/local/bin/trans」にダウンロードし、実行可能にします。

sudo wget git.io/trans -O /usr/local/bin/trans
sudo chmod +x /usr/local/bin/trans

実行にはgawkコマンドとfribidiコマンドが必要です。また、mplayerもしくはmpg123コマンドがあれば翻訳文を発音させることが可能です。以下の手順でインストールします。

Ubuntu 16.04およびDebian 9の場合

sudo apt -y install gawk libfribidi-bin mplayer

Fedora 26の場合

sudo dnf -y install gawk fribidi mpg123

CentOS 7の場合

sudo yum -y install gawk fribidi mpg123

Translate Shellで翻訳する

他の言語から日本語へ

以下のように言語コードを指定して実行します。言語コードは一覧にまとめられています

trans en:ja 'The earthquake struck the southern coast of Mexico on 7 September 2017.'

ちょっとごちゃごちゃしてますね。「-b」オプションを追加すれば、訳文だけ表示されます。

trans -b en:ja 'The earthquake struck the southern coast of Mexico on 7 September 2017.'

これなら、訳文をパイプでさらに別のプログラムに送ったりもできますね。さらに「-p」オプションで訳文を発音させることができます。

trans -b -p en:ja 'The earthquake struck the southern coast of Mexico on 7 September 2017.'

日本語から他の言語へ

以下は日本語から英語に変換し、発音させる例です。

trans -b -p ja:en 'H2Aロケット34号機が1日午前9時17分、鹿児島県の種子島宇宙センターから打ち上げられた。'

もちろん、英語以外に変換することもできます。以下は中国語(簡体字)に変換する例です。

trans -b -p ja:zh-CN 'ヤマハ発動機は9月1日、バイク9車種の生産終了を発表しました。'

なお、デフォルトではGoogle翻訳が用いられます。「-e bing」を指定することで、Bing翻訳に切り替えることができます。

trans -b -p -e bing ja:en '天気を見るためにブラウザに切り替えたり、わざわざスマホを見たりするのも面倒です。コマンドで天気を確認できるようにしておきましょう。'

まとめ

ここで紹介した以外にも、さまざまなオプションがあります。Translate Shellのサイトにさまざまな実行例が掲載されているので、自分に合った使い方を探してみてください。

transコマンドのヘルプ

Usage:  trans [OPTIONS] [SOURCE]:[TARGETS] [TEXT]...

Information options:
    -V, -version
        Print version and exit.
    -H, -help
        Print help message and exit.
    -M, -man
        Show man page and exit.
    -T, -reference
        Print reference table of languages and exit.
    -R, -reference-english
        Print reference table of languages (in English names) and exit.
    -L CODES, -list CODES
        Print details of languages and exit.
    -U, -upgrade
        Check for upgrade of this program.

Display options:
    -verbose
        Verbose mode. (default)
    -b, -brief
        Brief mode.
    -d, -dictionary
        Dictionary mode.
    -identify
        Language identification.
    -show-original Y/n
        Show original text or not.
    -show-original-phonetics Y/n
        Show phonetic notation of original text or not.
    -show-translation Y/n
        Show translation or not.
    -show-translation-phonetics Y/n
        Show phonetic notation of translation or not.
    -show-prompt-message Y/n
        Show prompt message or not.
    -show-languages Y/n
        Show source and target languages or not.
    -show-original-dictionary y/N
        Show dictionary entry of original text or not.
    -show-dictionary Y/n
        Show dictionary entry of translation or not.
    -show-alternatives Y/n
        Show alternative translations or not.
    -w NUM, -width NUM
        Specify the screen width for padding.
    -indent NUM
        Specify the size of indent (number of spaces).
    -theme FILENAME
        Specify the theme to use.
    -no-theme
        Do not use any other theme than default.
    -no-ansi
        Do not use ANSI escape codes.

Audio options:
    -p, -play
        Listen to the translation.
    -speak
        Listen to the original text.
    -player PROGRAM
        Specify the audio player to use, and listen to the translation.
    -no-play
        Do not listen to the translation.

Terminal paging and browsing options:
    -v, -view
        View the translation in a terminal pager.
    -pager PROGRAM
        Specify the terminal pager to use, and view the translation.
    -no-view
        Do not view the translation in a terminal pager.
    -browser PROGRAM
        Specify the web browser to use.

Networking options:
    -x HOST:PORT, -proxy HOST:PORT
        Use HTTP proxy on given port.
    -u STRING, -user-agent STRING
        Specify the User-Agent to identify as.

Interactive shell options:
    -I, -interactive, -shell
        Start an interactive shell.
    -E, -emacs
        Start the GNU Emacs front-end for an interactive shell.
    -no-rlwrap
        Do not invoke rlwrap when starting an interactive shell.

I/O options:
    -i FILENAME, -input FILENAME
        Specify the input file.
    -o FILENAME, -output FILENAME
        Specify the output file.

Language preference options:
    -l CODE, -hl CODE, -lang CODE
        Specify your home language.
    -s CODE, -sl CODE, -source CODE
        Specify the source language.
    -t CODES, -tl CODE, -target CODES
        Specify the target language(s), joined by '+'.

Other options:
    -no-init
        Do not load any initialization script.

See the man page trans(1) for more information.