CatHand Blog

アプリ開発やMac弄り

MyScriptの設定方法

MyScryptという手書き文字認識ライブラリがあります。

developer.myscript.com

各種設定方法がすごくわかりずらいのでメモ。

OSはAndroidです。

日本語を認識できるようにする

日本語のAssetを↓からダウンロードします。

https://developer.myscript.com/support/recognition-assets

右の方にある Select a Language から日本語を選択してダウンロードします。

ダウンロードしたzipを解凍してできた recognition-assets フォルダの中の confresources フォルダを、Androidプロジェクトの assets フォルダの中にコピーします。

で、だいたい↓のようなコードで日本語が認識できるようになります。

        fun init(context: Context, certificate: ByteArray, dpi: Float = 300f) {
            val engine = Engine.create(certificate)

            val confDir = "zip://" + context.getPackageCodePath().toString() + "!/assets/conf"
            engine.configuration.setStringArray("configuration-manager.search-path", arrayOf(confDir))
            val tempDir: String = context.getFilesDir().getPath().toString() + File.separator + "tmp"
            engine.configuration.setString("content-package.temp-folder", tempDir)

            val renderer = engine.createRenderer(dpi, dpi, null)

            val editor = engine.createEditor(renderer).let {
                it.setFontMetricsProvider(null)
                it.configuration.also {
                    it.setStringArray("configuration-manager.search-path", arrayOf("zip://" + context.getPackageCodePath() + "!/assets/conf"))
                    it.setString("lang", "ja_JP")
                }
                it
            }
        }

結果をJSONで取得する

        val exportParams = engine.createParameterSet()
        exportParams.setBoolean("export.jiix.bounding-box", true)    // bounding boxを含める
        val jiixString = editor.export_(editor.rootBlock, MimeType.JIIX, exportParams)    // JSON

↑みたいなかんじでJSONが取得できます。

返却されるJSONについては↓にドキュメントがあります。

JIIX format reference | MyScript Developer

複数行認識をOFFにする

デフォルトでは行を認識しますが、OFFにしたい場合は以下のようにします。

    editor.setBoolean("text.guides.enable", false)