Slide 1

Slide 1 text

機械翻訳をローカ ルマシンで( ArgosTranslate/Libr eTranslate ) Kenichiro Matohara(matoken) 1

Slide 2

Slide 2 text

南隅から参加(鹿児島の右下) 好きなLinuxディストリビューションはDebian お仕事募集 mailto:work@matohara.org Kenichiro Matohara(matoken) https://matoken.org 2

Slide 3

Slide 3 text

ローカルで機械翻訳 機械翻訳 自然言語を他の自然言語にコンピュータに変換してもらう > こん にちは → hello Google翻訳,DeepLなどが有名でよく使われる 無料プランだと翻訳データは利用され,第3者に見えることも 回線が必須 OSSでローカルで利用できるものを試してみた 3

Slide 4

Slide 4 text

今回の環境 CPU Intel® Core™ i5-7300U CPU @ 2.60GHz RAM 8GB OS Debian bookworm amd64(testing) Python Python 3.10.9 4

Slide 5

Slide 5 text

Argos Translate Python製MITライセンス Pythonライブラリ/CLI/GUI/API/Webがある サポート言語 Arabic, Azerbaijani, Catalan, Chinese, Czech, Danish, Dutch, English, Esperanto, Finnish, French, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Irish, Italian, Japanese, Korean, Persian, Polish, Portuguese, Russian, Slovak, Spanish, Swedish, Turkish, Ukrainian () Argos Open Tech 5

Slide 6

Slide 6 text

環境構築 $ mkdir ./argostranslate $ cd ./argostranslate/ $ python3 -m venv venv $ source venv/bin/activate $ pip install argostranslate $ du -Hs . 3449892 . 6

Slide 7

Slide 7 text

modelデータ入手 $ argospm --help usage: argospm [-h] {update,search,install,list,remove} ... positional arguments: {update,search,install,list,remove} Available commands. update Downloads remote package index. search Search package from remote index. install Install package. list List installed packages. remove Remove installed package. options: -h, --help show this help message and exit $ argospm list | wc -l 53 $ argospm list | grep ja translate-en_ja translate-ja_en $ argospm list | grep ja | xargs -n1 argospm install 7

Slide 8

Slide 8 text

usage $ argos-translate --help usage: argos-translate [-h] [--from-lang FROM_LANG] [--to-lang TO_LANG] [TEXT] Open-source offline translation. positional arguments: TEXT The text to translate. Read from standard input if missing. options: -h, --help show this help message and exit --from-lang FROM_LANG, -f FROM_LANG The code for the language to translate from (ISO 639-1) --to-lang TO_LANG, -t TO_LANG The code for the language to translate to (ISO 639-1) $ time argos-translate --from-lang en --to-lang ja 'hello world.' こんにちは世界。 real 0m2.124s user 0m1.731s sys 0m0.484s $ echo 'cat is awesome.' | argos-translate --from-lang en --to-lang ja 猫は素晴らしいです。 8

Slide 9

Slide 9 text

GUI $ pip install argostranslategui $ argos-translate-gui 9

Slide 10

Slide 10 text

LibreTranslate Argos Translaeを使ったWebAPI Python/JavaScript製AGPLv3 Docker有 🐳 LibreTranslate - Free and Open Source Machine Translation API 10

Slide 11

Slide 11 text

install $ git clone https://github.com/LibreTranslate/LibreTranslate $ cd LibreTranslate $ python3 -m venv venv $ source venv/bin/activate $ pip install -e . $ du -Hs . 3518928 . $ libretranslate Updating language models Found 58 models Downloading Arabic → English (1.0) ... Downloading Azerbaijani → English (1.5) ... Downloading Catalan → English (1.7) ... : ^c $ du -Hs ~/.local/share/argos-translate/ 6137956 /home/matoken/.local/share/argos-translate/ $ libretranslate --frontend-language-source en --frontend-language-target ja Running on http://127.0.0.1:5000 11

Slide 12

Slide 12 text

12

Slide 13

Slide 13 text

LibreTranslate Firefox extention 未検証 😔 GitHub - hugopeixoto/libretranslate-firefox: Firefox extension to integrate LibreTranslate 13

Slide 14

Slide 14 text

LibreTranslateをShellで ArgosTranslateのCLIでもいいような? GitHub - argosopentech/LibreTranslate-sh: Unix bindings for LibreTranslate $ export LIBRETRANSLATE_URL="http://127.0.0.1:5000/" $ ./libretranslate translate en ja "hello cat." {"translatedText":"\u3053\u3093\u306b\u3061\u306f\u732b\u3002"} $ ./libretranslate translate en ja "hello cat." | jq . { "translatedText": "こんにちは猫。" } 14

Slide 15

Slide 15 text

翻訳比較 例 1. When Elon Musk bought up Twitter Inc. as his personal toy to play with, a lot of people started to worry. By acquiring Twitter, the richest man on Earth took unchecked control of arguably one of the most powerful online platforms for political speech and public debate. Why everyone is on Mastodon? - European Digital Rights (EDRi) 15

Slide 16

Slide 16 text

org] イーロン・マスクがTwitterというおもちゃを購入したことに、多くの人 が懸念を抱き始めた。地球上で最も裕福な男性は、Twitter社を買収す ることで政治的発言や公共の議論の最も強力なオンラインプラットフォ ームの1つを好き勝手に支配できるようになった。 Mastodonに注目が集まっている のはなぜ? | p2ptk[. 16

Slide 17

Slide 17 text

Google Translate Elon Musk が Twitter Inc. を自分のおもちゃとして買収したとき、 多くの人が心配し始めました。地球上で最も裕福な人物は、Twitter を 買収することで、政治的発言と公開討論のための最も強力なオンライン プラットフォームの 1 つを無防備に支配しました。 17

Slide 18

Slide 18 text

DeepL イーロン・マスクが個人的なおもちゃとしてTwitter社を買収したとき、 多くの人が心配し始めた。Twitter社を買収することで、地球上で最も 裕福な男性は、政治的発言や公的議論を行うための最も強力なオンライ ンプラットフォームの1つであるTwitter社を無制限にコントロールでき るようになったのです。 18

Slide 19

Slide 19 text

LibreTranslate エルン・ムスクがTwitter Inc.を個人的にプレイするおもちゃとして買っ たとき、多くの人が心配し始めました。 Twitterを取得することで、地球 上の最も豊かな人は、政治的なスピーチと公共の議論のための最も強力 なオンラインプラットフォームの間違いなく制御をチェックしませんでし た。. 19

Slide 20

Slide 20 text

Joke RFC 例 2. https://www.ietf.org/rfc/rfc1149.txt This memo describes an experimental method for the encapsulation of IP datagrams in avian carriers. This specification is primarily useful in Metropolitan Area Networks. This is an experimental, not recommended standard. Distribution of this memo is unlimited. 20

Slide 21

Slide 21 text

http://www.kt.rim.or.jp/~ksk/joke- RFC/rfc1149j.txt このメモは、IP データグラムを鳥類キャリアにカプセル化するための実験 的な方法について述べる。この仕様は本来、都市間ネットワークに対して 有効である。これは実験的なものであり、推奨できない規格である。この メモの配布に制限はない。 21

Slide 22

Slide 22 text

Goole Translate このメモは、のカプセル化のための実験的方法を説明します 鳥類キャリ アの IP データグラム。この仕様は主に メトロポリタン エリア ネットワー クで役立ちます。これは実験的なものであり、 推奨基準。このメモの配布 は無制限です。 22

Slide 23

Slide 23 text

DeepL このメモでは、鳥のキャリアにおけるIPデータグラムのカプセル化の実 験方法について説明する。 IPデータグラムのカプセル化の実験的な方 法を説明する。 この仕様は、主に メトロポリタンエリアネットワークで有 用である。 これは実験的なものであり、推奨規格ではありません。 推奨 規格ではありません。 このメモの配布は無制限である。 23

Slide 24

Slide 24 text

LibreTranslate このメモは、カプセル化の実験方法を説明する 航空キャリアにおけるIP データグラム。 この指定は主にあります 首都圏ネットワークでの利用 こ れは実験的ではなく、 推薦された標準。 このメモの配布は無制限です。. 24

Slide 25

Slide 25 text

先月や以前の発表と組み合わせ て Whisper(.cpp)でローカルでリアルタイムに会話を文字起こししつ つ,ArgosTranslateで機械翻訳,更にVOICEVOXで読み上げとい ったことが回線無しで完結できる  リアルタイムで行うには要GPU 💰 OpenAIのWhisper でオフライン文字 起こし(STT) 色々聞く 25

Slide 26

Slide 26 text

まとめ ローカルで動作するOSSな機械翻訳ソフトの ArgosTranslate/LibreTranslate 思っていたより翻訳精度はいい感じ. 文章によっては前処理が必要なことも? オフライン時や仕事などの文章ではおすすめ LibreTranslateはDockerがあるのでそれで試してみると良さ そう 26

Slide 27

Slide 27 text

奥付 発表 2022-12- 18(sun) 発表者 利用ソフトウェア ライセンス 鹿児島Linux勉強会 2022.12(オンライン開催) Kenichiro Matohara(matoken) Asciidoctor Reveal.js CC BY 4.0 27

Slide 28

Slide 28 text

No content