Na beta do Telegram para macOS, a função de ditado — que permite digitar mensagens por voz diretamente no campo de entrada — agora conta com a correção de texto ditado por um editor de IA. Na build 13.1.0.283431 de 1º de novembro, há um botão «Enhance» com as opções «Fix Grammar», «Enhance Style» e «AI Editor…», um seletor de pontuação automática e uma configuração para o que ⌘R faz no campo de entrada: dita texto ou grava uma mensagem de voz. O ditado em si está no código aberto do cliente, mas é ativado apenas em builds de depuração, e a correção por IA não está presente no código aberto. Isso afeta aqueles que digitam a partir de um Mac. No código aberto, a fala é reconhecida pelo reconhecedor de voz integrado da Apple, mas na beta, um caminho alternativo foi adicionado através dos servidores do Telegram — com um limite gratuito, após o qual é necessário o Premium.

Novidades na Beta

O ditado no cliente para macOS funciona como uma extensão da gravação de áudio: ao pressionar o botão de gravação, não solte o mouse e arraste para a esquerda — a dica na parte inferior diz exatamente isso: «← Swipe to dictate». O movimento para a esquerda deve ser maior do que para cima, caso contrário, a gravação será apenas fixada. Em vez de uma mensagem de voz, a fala é convertida em texto, e a gravação em si é excluída. Durante o reconhecimento, a parte inferior exibe «Transcribing. Click anywhere to stop.»; o texto pronto no código aberto é mostrado em um painel separado, de onde pode ser enviado imediatamente ou adicionado ao final do campo de entrada e editado. O idioma pode ser selecionado manualmente ou deixado como «Automatic». O ditado na beta 283318 já havia sido mencionado em 15 de outubro; no Android, uma transcrição semelhante antes do envio foi mostrada e depois removida.

A novidade nas betas a partir de 24 de outubro (build 283377) é a correção do texto ditado. Strings da 283431:

StringDescrição
«Enhance»botão ao lado do texto ditado; a dica é «Fix punctuation and grammar in the dictated text»
«Fix Grammar»corrige pontuação e gramática
«Enhance Style»reescreve o texto em um dos estilos
«AI Editor…»abre o editor de IA completo
«Enhancing…»texto em processamento
«Automatic Punctuation»alternador de pontuação automática
«What ⌘R does in the message field. Automatic dictates when the field has text and records a message when it is empty.»configuração de ⌘R: no modo «Automatic», a combinação dita se o campo já tem texto e grava uma mensagem de voz se o campo estiver vazio
«The language you speak while dictating. Automatic uses this chat's language and your system languages.»idioma do ditado: «Automatic» usa o idioma do chat e os idiomas do sistema

O cliente memoriza o estilo selecionado (kChatDictationEnhanceStyle). A julgar pela opção «AI Editor…», são os mesmos estilos do editor de IA no campo de entrada, que o Telegram lançou em abril: corrigir gramática, traduzir, reescrever nos estilos «Formal», «Short», «Zen», «Corp» e outros. A descrição no post oficial indica que as funções de IA operam na rede Cocoon.

Não é possível saber pela build se o botão já está visível. No código aberto, o ditado é desativado em builds beta e de lançamento por uma condição de compilação e funciona apenas em builds de depuração; se está ativado na 283431, não é possível inferir do binário, embora as strings e classes estejam presentes.

O que fazer

  • Onde procurar. A beta chega como uma atualização automática da versão beta do Telegram para macOS; a lista de builds está no feed de atualizações. Na versão estável 13.1.0 (283357) de 20 de outubro, o motor de ditado já existe, mas as strings «Enhance», «Automatic Punctuation» e a configuração de ⌘R não estão presentes, e a dica ao gravar é «← Swipe to transcribe».
  • Conceder acesso. O ditado requer duas permissões do macOS: Ajustes do Sistema → Privacidade e Segurança → Microfone e, no mesmo local, Reconhecimento de Fala. Sem a segunda, o cliente exibe «Telegram needs Speech Recognition access to turn your voice into text».
  • Verificar o idioma. Se nenhum dos idiomas do sistema for suportado pelo reconhecedor da Apple, o ditado responde «Dictation is not available for your current input language.» O idioma pode ser selecionado manualmente em vez de «Automatic».
  • Lembrar do ⌘R. Atualmente, ⌘R no Telegram para macOS inicia a gravação de uma mensagem de voz ou vídeo; na beta, a combinação terá uma escolha, e no modo «Automatic», com o campo não vazio, ela iniciará o ditado, e não a gravação.

Como a fala é reconhecida

O reconhecimento no código aberto é inteiramente feito pela Apple. No macOS 26, o cliente usa o novo motor SpeechAnalyzer se o modelo de idioma já estiver instalado; caso contrário, inicia o download em segundo plano e entrega este ditado ao SFSpeechRecognizer anterior. Em sistemas mais antigos, apenas o SFSpeechRecognizer funciona. A solicitação é marcada como ditado, e se houver um modelo no dispositivo para o idioma, o cliente exige o reconhecimento apenas no Mac; no macOS 13 e mais recentes, a pontuação é adicionada pelo próprio reconhecedor.

No modo «Automatic», o idioma não é adivinhado antecipadamente: o cliente seleciona até dois idiomas do sistema que o reconhecedor da Apple conhece e executa ambos simultaneamente em um único áudio; o segundo, apenas se seu modelo funcionar sem rede. Uma pontuação é calculada para cada candidato — metade da estabilidade do texto entre as atualizações, metade da confiança do reconhecedor, mais uma pequena vantagem para o primeiro idioma. Após 1,5 segundos das primeiras palavras reconhecidas, o candidato que superou o segundo em 0,12 vence, e após 3 segundos, o líder vence em qualquer caso; o perdedor é interrompido, e o áudio continua para um único candidato. Na beta, o idioma do próprio chat foi adicionado a esta lista.

Em chats secretos, o código aberto executa apenas reconhecedores que funcionam no dispositivo. Se não houver um modelo para o idioma, o ditado não será iniciado em um chat secreto. Em um chat normal, o primeiro idioma pode ser reconhecido mesmo sem um modelo local — nesse caso, a gravação é enviada para os servidores da Apple, como no ditado do sistema macOS.

Caminho alternativo via servidores do Telegram

Na beta, a isso foi adicionada a transcrição de servidor do próprio Telegram. No log do cliente, há as strings «server fallback selected» e «nativeAvailable», e no binário, o método messages.transcribeAudioFile: ele aceita um arquivo de áudio carregado, e não uma mensagem, e retorna o texto como uma resposta de transcrição normal ou posteriormente, por meio da atualização updateTranscribedAudioFile. O método anterior messages.transcribeAudio transcreve apenas áudios que já estão no chat — uma gravação não enviada não tem número de mensagem. O novo método e a atualização estão no esquema da API, extraído das betas do macOS, mas não na documentação publicada.

As limitações são visíveis pelos textos de erro da beta: gravações com mais de 30 minutos ou maiores que 1 MB não são transcritas, e após as transcrições gratuitas, aparece «Your free transcriptions have been used. Telegram Premium is required to transcribe more audio.» Na versão estável 13.1.0, nem o método nem essas strings estão presentes. Como a beta escolhe entre a Apple e o servidor do Telegram e o que faz em chats secretos, não é possível ver pela build.

Como foi verificado

  • Código aberto do cliente: motor de ditado (seleção de idiomas, avaliação, limites de 1,5 e 3 segundos, requiresOnDeviceRecognition) e controlador, onde a verificação isSupported retorna "sim" apenas em builds de depuração e requer reconhecimento no dispositivo em chats secretos. Ambos os arquivos foram adicionados ao código aberto pela fusão da branch de lançamento 13.1 em 23 de outubro.
  • Binários dos feeds de atualização: beta 283431 e estável 283357. As classes ChatDictationEnhancer, ChatDictationEnhanceView, as chaves kChatDictationAutomaticPunctuation e kChatDictationShortcut e as strings da tabela estão presentes apenas na beta; na estável, há o motor (ChatDictationSession, ChatDictationAnalyzerRecognizer) e oito strings de ditado, mas não há correção. No arquivo de strings do código aberto, as opções «Enhance» também não estão presentes.
  • Parte do servidor — strings do binário 283431: AudioFileTranscription, «upload complete, calling transcribeAudioFile», updateTranscribedAudioFile e os textos de erro; na 283357, eles não estão presentes.
  • Primeira aparição de ChatDictationEnhancer — diff do binário da beta 283377, 24 de outubro.