ユーザ用ツール

サイト用ツール


日本語入力

日本語入力

概要

Linux上の日本語入力環境については、古くはSKK/Wnn/Cannaなどから始まり、近年ではAnthy/Mozcなどのよりモダンなものへと変化してきている。

特にMozcはGoogle日本語入力のOSS版であり、必要十分な能力を持っている。

ところが、最近になって、AIを積極的に活用した azooKeyベースのHazkeyが登場し、大きな変化の時を迎えようとしている。

fcitx5 + Hazkey

Hazkeyは、Ubuntu(x86_64)向けのパッケージと、Arch Linux向けのパッケージを配布しているが、それ以外の環境については自力でビルドすることで入手できる。

当方にてuConsole向けに、Ubuntu 24.04LTS(ARM64)用のバイナリを構築することに成功している。

fcitx5が前提なので、fcitx4やibusを使っている場合は、まずfcitx5へ乗り換える必要がある。

パッケージがあれば

$ sudo apt install -y ./fcitx5-hazkey_0.2.1-1_amd64.deb

のようにして導入する。

導入した後、fcitx5を再起動し、設定から、hazkey を有効化する。

デフォルトの状態ではAIは有効になっていない。 そもそもモデルが入っていない。 パッケージからHazkey設定ツールがインストールされているので、これを開き、AIというタブに行って、そこにあるボタンを押せばモデルがダウンロードされ、AIが有効化される。 モデルは80MB程度なので、特に問題はないと思われる。

なお、当方で試したところ、ある程度まともなGPUがないとAIを有効化した途端に日本語はおろか通常のキー入力も行えなくなってしまう。 その場合は、fcitx5を英数字モードに切り替え、Hazkey設定ツールでAIを無効化することで復帰できる。

AIによる文脈解析は強力な機能だが、これがなくてもMozcと遜色のない変換、それもライブ変換を利用できるので、その辺は諦めてもらいたい。

初代Ryzen 5G(Radeon Vega搭載)では快適に使えたが、初代Surface GoやuConsole(CM4)ではダメだった。

自力でのビルド(主にuConsoleなどのARM64用)

GitHubからソースをcloneしてビルドするだけであるが、開発途上のものであるためドキュメントが追いついてない感がある。 つまり、README.mdなどに記されている方法ではうまくいかなかったりする部分があるのだ。

ここでは0.2.1を対象に、具体的なビルド方法について記しておく。

  • CMakeは3.31以降 – 4.x以降推奨とあるがむしろ4.xを使うべき。Ubuntuならsnapから導入しておく。
  • Swiftのディレクトリ構造は頻繁に変わっているようで、CMakeLists.txtが対応しきれていないのでcmake時に上書きする
  • VALKAN=ONにしたいなら、実メモリの多い1)端末かスワップを8GB程度には拡大してから行う。
  • sudo ninja installのあとは sudo gtk-update-icon-cache -f /usr/share/icons/hicolor してキャッシュを更新せよ

まず、これらが必要。

$ /snap/cmake/current/bin/cmake -DCMAKE_BUILD=Release -DCMAKE_INSTALL_PREFIX=/usr -DGCML_VULKAN=ON -DSWIFT_DYNAMIC_LIB_PATH=$HOME/.local/share/swiftly/toolchains/6.2.3/usr/lib/swift/linux -B build -G Ninja
$ /snap/cmake/current/bin/cmake --build build -j1
...
$ cd build
$ sudo ninja install
$ sudo gtk-update-icon-cache -f /usr/share/icons/hicolor

SWIFTについては6.2.3の時点ではこの場所にライブラリがあるが、以前は swift_static とかいうパスにファイルがあったらしい。 その辺でCMakeLists.txtとの間に齟齬が発生するので、上書きしてしまう。

ビルドするとき-j1を渡しているのは、メモリ食いのやつが混ざっているので、並列でコマンド走らされると、メモリ不足を起こしかねないので、明示的にシングルでビルドする指定をしている。 -DGCML_VULKAN=OFFでビルドするならこの心配はないので、-j4 でも -j5でもプロセッサがあるならあるだけつぎ込めばいいだろう。

1)
8GB以上
日本語入力.txt · 最終更新: by araki