Emo:オンデバイスの絵文字提案
短いテキストを読み取り、それに本当に合う絵文字を返す、オンデバイスの絵文字提案。23 言語に対応し、10 ミリ秒未満で応答します。
Emo は、タスク、カレンダーの予定、メッセージといった短いテキストから、関連する絵文字を予測します。「歯医者の予約」なら 🦷 🪥 🏥 🩺 を、「請求書の支払い」なら 💰 💳 🧾 を返します。実際の書き方に合わせて調整されており、肌の色のバリエーションにも対応します。
Emo は意味から絵文字を提案するもので、絵文字ピッカーではありません。ピッカーは一覧を表示して選ばせます。Emo はテキストを読み取り、予測変換キーボードが次の単語を提案するように、ふさわしい絵文字を提示します。コンパクトな 2 ストリームのテキスト分類器により、キー入力のたびに実行できるほど小さく高速です。
デモ
パフォーマンス
6 MB 未満のモデルで、23 言語にわたり 10 ms 未満の提案。
社内測定値。絵文字の意味付けは近似的なため、ランキング上位での僅差は想定内です。
ユースケース
キーボードと自動補完
予測変換キーボードが単語を提案するように、ユーザーの入力に合わせて絵文字を提案します。すべてオンデバイスで動作します。
カレンダーとタスクの項目
短い項目向けに調整されています。「歯医者の予約」なら 🦷 🪥 🏥 🩺 を返すため、スケジュールアプリが予定に自動でラベルを付けられます。
メッセージング
作成中のメッセージに合う絵文字を、言語を問わず、ネットワーク通信なしで提示します。
ピッカーを補完
Emo は意味に基づいて動作するため、絵文字の一覧を置き換えるのではなく、その隣で補完します。
できること
- 日常的に使う絵文字を厳選した約 800 語の語彙。肌の色のバリエーションにも対応。
- 多言語対応:CJK、アラビア語、タイ語、ヒンディー語を含む 23 言語。
- 最近のスマートフォンで 10 ms 未満の予測。
- アプリに同梱される小さなモデル。サーバー通信は不要。
プラットフォームとインストール
// Swift Package Manager .package(url: "https://github.com/Desert-Ant-Labs/emo-swift", from: "0.5.0")
import Emo let emoji = try await Emo.suggestions(for: "Pay my bills") // ["💰", "💳", "🧾"]
// build.gradle.kts (via JitPack)
implementation("com.github.Desert-Ant-Labs:emo-kotlin:0.5.0")
import ai.desertant.emo.Emo
val emoji = Emo.suggestions("Pay my bills")
// ["💰", "💳", "🧾"]
npm i @desert-ant-labs/emo
import { suggestions } from "@desert-ant-labs/emo";
const results = await suggestions("Pay my bills");
// [{ emoji: "💰", confidence: 0.62 }, ...]
仕様
- 言語
- 23 言語(CJK、アラビア語、タイ語、ヒンディー語を含む)
- オンデバイスサイズ
- 約 5 MB(モデル + トークナイザーを同梱)
- レイテンシ
- 提案 1 件あたり 10 ms 未満
- アプローチ
- 2 ストリームのテキスト分類器:語彙的な n-gram と多言語埋め込みの併用
FAQ
Emo とは?
短いテキストを読み取り、それに本当に合う絵文字を返す、オンデバイスの絵文字提案。23 言語に対応し、10 ミリ秒未満で応答します。
Emo はオンデバイスで動作しますか?
はい。Emo は完全にオンデバイスで動作します。推論はローカルで行われ、サーバーへの通信は発生しないため、データがデバイスの外に出ることはありません。
Emo はどのプラットフォームに対応していますか?
Emo は Swift, Kotlin, JavaScript / TypeScript 向けのネイティブなオンデバイス SDK として提供されます。
Emo の料金はいくらですか?
すべてのモデルは、SDK ごとに月間アクティブデバイス 100k 台まで無料です。ユーザーあたりの推論は無制限です。 カスタムライセンスについては、お問い合わせください。
Emo の精度や速度はどれくらいですか?
6 MB 未満のモデルで、23 言語にわたり 10 ms 未満の提案。