
30 秒の音声から、話されている言語を判定。
ボイスメモが届き、文字起こしは英語に設定されています。30 秒のところで Ear がポルトガル語だと告げ、次に動く文字起こしは、自信満々にでたらめを返す英語のものではなく、ポルトガル語のものになります。
Ear はファイル全体を聴くわけではありません。最も話し声らしく聞こえる 30 秒の区間を 3 つ見つけ、ジングルや無音を飛ばして、250 ms で言語を言い当てます。答えには信頼度と、それを信頼してよいかを示すフラグが付きます。
上位 2 つの候補が接近して分けられないとき、Ear はそう伝えます。間違った言語で文字起こしするのではなく、ユーザーに尋ねるか、汎用モデルにフォールバックできます。1 つの SDK で、あらゆるプラットフォームに対応します。Apple では Swift、Android では Kotlin、ブラウザと Node では JavaScript です。何もアップロードされません。
98.5% の確率で、正しい文字起こしへ。
162 件の録音で、Ear が信頼できると印を付けた答えの 98.5% が、正しい文字起こしへ振り分けられました。12 件の通常のアップロードと、ポッドキャストとして作り直した 10 件では、確信を持った答えに誤りは 1 つもありませんでした。
SDK を通してエンドツーエンドで計測し、モデルカードで公開しています。音楽の方が大きく混ざった音声が正しく読まれるのは、およそ 60% です。
ユースケース
30 秒の音声から、話されている言語を判定。.
まず正しい文字起こしを選ぶ
間違った言語に向けられた文字起こしは、自信満々にでたらめを返します。会議レコーダーやボイスメモアプリで、最初の 30 秒に Ear を走らせ、実際に話されている言語で文字起こし、字幕、翻訳を始めましょう。
録音のアーカイブを仕分ける
ボイスメモ、通話、エピソードのライブラリに、Node スクリプトや Mac アプリで一晩かけて Ear を走らせれば、朝までにすべてのファイルに言語が付きます。何もアップロードされず、ファイルごとの課金もありません。
通話や留守番電話を振り分ける
サポートアプリやメッセージング製品で、着信や留守番電話の言語を、それが人に届く前に言い当てます。その通話は、その言語を話せる担当者か、適切な音声モデルのもとへ届きます。
ブラウザで字幕を付ける
Web の動画ツールが、ブラウザでも Node でも同じ SDK を使い、話されている言語をクライアント側で判定し、字幕の言語を選ぶので、アップロードする人が選ぶ必要はありません。
インスピレーション
Ear で作るためのアイデア。プロンプトをコーディングエージェントにコピーして始めましょう。
Detect a caller's language and route the voicemail.
Sort an archive of recordings by spoken language.
Detect the language of a voice note, then transcribe with the right model.
Pick the dominant language of a recording to route it.
Detect the language of a voicemail or dictation before transcribing.
Gate transcription so it only runs on languages you support.
モデルができること
- アフリカーンス語からヨルバ語まで 99 言語。主要なヨーロッパ、アジア、アフリカの言語を含みます。
- 位置で読むのではなく、最も話し声らしく聞こえる 30 秒の窓を 3 つ選ぶので、音楽のイントロや無音の区間にだまされません。位置で選ぶ方式では、話し声が 10 分の 1 しかない 5 分の録音で、言語を当てられるのは 4% にとどまります。
- 言語、信頼度、順位付きの候補、そして
isReliableフラグを返します。上位 2 つが接近して判定できないときはフラグが false になり、モデルが互いに混同するノルウェー語、スウェーデン語、デンマーク語でも false になります。 - デコード済みの音声はサンプルレートを問わず使え、Apple ではファイル URL も使えます。
- 重みは初回利用時にダウンロードされ、キャッシュされます。インスタンスの生成では何も処理せず、ダウンロードも始めません。
はじめに
話し言葉の言語検出 を、数行のコードで iOS or macOS, Android or web アプリに追加。 Ear のドキュメント.
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core.git", from: "3.5.0")
// target dependency
.product(name: "Ear", package: "desert-ant-core")
import Ear
let ear = Ear() // downloads on first use
let detection = try await ear.identify(contentsOf: url)
detection.language // "pt"
detection.isReliable // true
Add Ear from Desert Ant Labs to this Swift project (iOS, macOS). What it does: Ear:オンデバイスの話し言葉の言語識別. SDK: Swift (iOS, macOS) Repo: https://github.com/Desert-Ant-Labs/desert-ant-core#readme // Swift Package Manager .package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core.git", from: "3.5.0") // target dependency .product(name: "Ear", package: "desert-ant-core") Reference: - Model page: https://desertant.com/models/ear/ - Full catalog and other models: https://desertant.com/llms.txt Add the SDK, then follow its README for the exact API and current version. Do not invent API names or method signatures; confirm them against the README.
// build.gradle.kts (Maven Central)
implementation("ai.desertant:ear:3.5.0")
import ai.desertant.ear.Ear
val ear = Ear(context) // downloads on first use
val detection = ear.identify(samples, 16_000.0)
detection.language // "pt"
detection.isReliable // true
ear.close()
Add Ear from Desert Ant Labs to this Kotlin project (Android).
What it does: Ear:オンデバイスの話し言葉の言語識別.
SDK:
Kotlin (Android)
Repo: https://github.com/Desert-Ant-Labs/desert-ant-core#readme
// build.gradle.kts (Maven Central)
implementation("ai.desertant:ear:3.5.0")
Reference:
- Model page: https://desertant.com/models/ear/
- Full catalog and other models: https://desertant.com/llms.txt
Add the SDK, then follow its README for the exact API and current version. Do not invent API names or method signatures; confirm them against the README.
npm i @desert-ant-labs/ear @litertjs/core # browser
npm i @desert-ant-labs/ear # Node
import { Ear } from "@desert-ant-labs/ear";
const ear = await Ear.load();
const detection = await ear.identify(samples, 16000);
detection.language // "pt"
detection.isReliable // true
Add Ear from Desert Ant Labs to this JavaScript / TypeScript project (Web, Node.js). What it does: Ear:オンデバイスの話し言葉の言語識別. SDK: JavaScript / TypeScript (Web, Node.js) Repo: https://github.com/Desert-Ant-Labs/desert-ant-core#readme npm i @desert-ant-labs/ear @litertjs/core # browser npm i @desert-ant-labs/ear # Node Reference: - Model page: https://desertant.com/models/ear/ - Full catalog and other models: https://desertant.com/llms.txt Add the SDK, then follow its README for the exact API and current version. Do not invent API names or method signatures; confirm them against the README.
仕様
- 言語
- 99
- 入力
- 録音のうち 30 秒の窓を 3 つ。サンプルレートは問わない
- 速度
- 判定 1 回あたり 250 ms、窓 3 つ
- プラットフォーム
- iOS、macOS、tvOS、visionOS(Core ML)、Android、Linux、Windows(LiteRT)、ブラウザ(WebAssembly と LiteRT.js)、Node
Ear は言語を言い当てるもので、文字起こしはしません。音楽の方が大きい音声が正しく読まれるのは 10 回中およそ 6 回で、ノルウェー語、スウェーデン語、デンマーク語は互いに混同されるため、Ear は設計上それらを信頼できないと印を付けます。30 秒より短い録音は窓が 1 つになり、答えの確度は下がります。信頼できない答えは、文字起こしの設定ではなく、ユーザーへの問いかけとして扱ってください。
FAQ
Ear とは?
オンデバイスの話し言葉の言語識別。99 言語に対応し、短い音声から、文字起こしを始める前に言語を特定します。
Ear はオンデバイスで動作しますか?
はい。Ear はデバイス上で動作し、サーバーへの通信は発生しません。データはユーザーの手元に残ります。
Ear はどのプラットフォームに対応していますか?
Ear は Swift, Kotlin, JavaScript / TypeScript 向けのネイティブなオンデバイス SDK として提供されます。
Ear の料金はいくらですか?
各モデルは月間アクティブデバイス 100k 台まで無料です。推論は無制限です。 カスタムライセンスについては、お問い合わせください。
Ear の精度や速度はどれくらいですか?
162 件の録音で、Ear が信頼できると印を付けた答えの 98.5% が、正しい文字起こしへ振り分けられました。12 件の通常のアップロードと、ポッドキャストとして作り直した 10 件では、確信を持った答えに誤りは 1 つもありませんでした。