Ear
Identificação de língua falada no dispositivo em 99 línguas, a partir de um curto trecho de áudio, antes de a transcrição começar.

Detecte a língua falada a partir de 30 segundos de áudio.
Chega uma nota de voz e o transcritor está configurado para inglês. Aos 30 segundos, o Ear diz português, e o transcritor que corre em seguida é o de português, em vez de um de inglês a devolver disparates com confiança.
O Ear não ouve o ficheiro inteiro. O Ear encontra os três trechos de trinta segundos que mais soam como fala, salta a vinheta e o silêncio, e nomeia a língua em 250 ms. A resposta vem com uma confiança e um sinalizador que diz se dá para confiar nela.
Quando os dois principais candidatos estão próximos demais para separar, o Ear avisa. Você pergunta ao utilizador ou recorre a um modelo geral, em vez de transcrever na língua errada. Um SDK, todas as plataformas: Swift em dispositivos Apple, Kotlin no Android, JavaScript no navegador e no Node. Nada é enviado.
O transcritor certo em 98,5% das vezes.
Em 162 gravações, 98,5% das respostas que o Ear marcou como fiáveis encaminharam ao transcritor certo; em 12 carregamentos comuns e 10 refeitos como podcasts, nenhuma resposta confiante estava errada.
Medido de ponta a ponta pelo SDK e publicado no model card. Fala misturada sob música mais alta é lida corretamente cerca de 60% das vezes.
Casos de uso
Detecte a língua falada a partir de 30 segundos de áudio.
Escolha o transcritor certo primeiro
Um transcritor apontado para a língua errada devolve disparates com confiança. Num gravador de reuniões ou um app de notas de voz, execute o Ear nos primeiros 30 segundos e comece o transcritor, as legendas e a tradução na língua realmente falada.
Organize um acervo de gravações
Passe o Ear por uma biblioteca de notas de voz, chamadas ou episódios num script Node ou um app de Mac durante a noite, e pela manhã cada ficheiro terá o seu língua. Nada é enviado e nada é cobrado por ficheiro.
Encaminhe uma chamada ou um mensagem de voz
Num app de suporte ou um produto de mensagens, nomeie a língua de uma chamada recebida ou de um mensagem de voz antes de ele chegar a uma pessoa. A chamada cai com alguém que fala aquele língua, ou com o modelo de fala certo.
Legende no navegador
Uma ferramenta de vídeo web identifica a língua falada no cliente, com o mesmo SDK no navegador e no Node, e escolhe a língua da legenda para que quem envia nunca precise fazê-lo.
Inspiração
Ideias para construir com o Ear. Copie um prompt para o seu agente de código e comece.
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.
O que o modelo faz
- 99 línguas, do africâner ao iorubá, incluindo as principais línguas europeias, asiáticas e africanas.
- Escolhe as três janelas de trinta segundos que mais soam como fala, em vez de ler por posição, então uma introdução musical ou um trecho de silêncio não o engana. Escolher por posição acerta a língua em 4% das vezes numa gravação de cinco minutos com fala num décimo dela.
- Devolve a língua, uma confiança, os candidatos classificados e um sinalizador
isReliable. O sinalizador é falso quando os dois principais estão próximos demais para decidir, e falso para norueguês, sueco e dinamarquês, que o modelo confunde entre si. - Áudio já descodificado em qualquer taxa de amostragem funciona; uma URL de ficheiro funciona em dispositivos Apple.
- Os pesos são transferidos no primeiro uso e guardados em cache; a construção não faz trabalho nenhum e não inicia download.
Primeiros passos
Adicione deteção de língua falada ao seu app iOS or macOS, Android or web em poucas linhas de código. Docs do 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: identificação de língua falada no dispositivo. 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: identificação de língua falada no dispositivo.
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: identificação de língua falada no dispositivo. 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.
Especificações
- Línguas
- 99
- Entrada
- Três janelas de trinta segundos da gravação; qualquer taxa de amostragem
- Velocidade
- 250 ms por identificação, três janelas
- Plataformas
- iOS, macOS, tvOS, visionOS (Core ML); Android, Linux, Windows (LiteRT); navegador (WebAssembly e LiteRT.js); Node
O Ear nomeia a língua; ele não transcreve. Fala sob música mais alta é lida corretamente cerca de seis vezes em dez, e norueguês, sueco e dinamarquês são confundidos entre si, então o Ear marca esses casos como não fiáveis por design.
Gravações com menos de 30 segundos recebem uma única janela e uma resposta menos certa. Trate uma resposta não fiável como uma pergunta para o utilizador, não como um ajuste de transcritor.
FAQ
O que é o Ear?
Identificação de língua falada no dispositivo em 99 línguas, a partir de um curto trecho de áudio, antes de a transcrição começar.
O Ear é executado no dispositivo?
Sim. O Ear é executado no dispositivo, sem qualquer chamada a servidores, por isso os dados ficam com o utilizador.
Que plataformas suporta o Ear?
O Ear é distribuído como um SDK nativo no dispositivo para Swift, Kotlin, JavaScript / TypeScript.
Quanto custa o Ear?
Cada modelo é gratuito para até 100 mil dispositivos ativos mensais. A inferência é ilimitada. Contacte-nos para licenças personalizadas.
Qual é a precisão ou a rapidez do Ear?
Em 162 gravações, 98,5% das respostas que o Ear marcou como fiáveis encaminharam ao transcritor certo; em 12 carregamentos comuns e 10 refeitos como podcasts, nenhuma resposta confiante estava errada.