Pular para o conteúdo

Este modelo de speech-to-text tem apenas 16,9 MB — incrível

Ver no idioma original →

Autoria: Prompt Engineer 48 · Assistir no YouTube

Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.

Idioma original: inglês

Vídeo original: This speech-to-text model of just 16.9 MB .. crazy · Canal: Prompt Engineer 48 · 03:48 · Assistir no YouTube

Tópicos: Inferência e otimização de modelos, Modelos de IA, Modelos locais e open source, Modelos multimodais

O vídeo apresenta Whistle, um modelo de reconhecimento de fala da Cactus Compute que ocupa 16,9 MB e funciona localmente na CPU. Ele suporta sete idiomas e retorna transcrição, idioma, timestamps por palavra e embeddings do encoder. O apresentador testa o modelo em um laptop Windows e relata que ele transcreveu corretamente uma frase em cerca de 0,11 segundo. O vídeo também demonstra timestamps por palavra, viés para palavras-chave e o comportamento com áudio silencioso, além de mencionar opções de integração.

  • Whistle é um modelo de reconhecimento de fala local em um único arquivo de 16,9 MB.
  • O modelo processa áudio mono de 16 kHz com até 30 segundos em uma única passagem.
  • Há suporte para inglês, alemão, francês, espanhol, italiano, neerlandês e polonês.
  • O teste no laptop Windows foi feito somente com CPU; o modelo transcreveu corretamente a frase usada.
  • Em uma execução aquecida, a transcrição de um clipe de 3 segundos levou cerca de 0,11 segundo.
  • Whistle pode retornar timestamps e probabilidades por palavra, além de aceitar viés para palavras-chave.
  • Em um teste com áudio silencioso, o resultado foi uma string vazia, sem texto inventado.
  • A comparação de velocidade citada foi medida em um Apple M4 Pro, não no laptop do apresentador.
Início Capítulo Resumo
00:00 Apresentação de Whistle O vídeo introduz o modelo de 16,9 MB, seu uso local e os dispositivos para os quais foi projetado.
01:08 Comparações e desempenho São apresentados números de tamanho, velocidade e taxa de erro de palavras, com ressalvas sobre os dados de velocidade e os casos difíceis.
02:14 Instalação e teste no laptop O apresentador mostra a instalação, executa uma transcrição em CPU e informa o tempo medido no próprio laptop.
03:16 Recursos adicionais e conclusão O vídeo demonstra viés para palavras-chave e áudio silencioso, comenta opções de integração e resume o teste.

O modelo inteiro é um arquivo, whistle.kext. — 00:00

Whistle tem 16,9 megabytes, Moonshine tem 41,9 e Whisper Base tem 145,3. — 01:08

Turn off the kitchen lights and set a timer for 10 minutes. — 02:14

O resultado foi uma string vazia. Ele não inventou texto. — 03:16

  • Whistle (modelo): Modelo compacto de reconhecimento de fala da Cactus Compute, apresentado como um arquivo de 16,9 MB.
  • Cactus Compute (empresa): Empresa responsável por Whistle e também associada ao modelo Needle.
  • Needle (ferramenta): Produto da Cactus usado no exemplo de instalação e transcrição e mencionado como compartilhando o mesmo mecanismo de Whistle.
  • Whisper Base (modelo): Modelo usado como referência de tamanho na comparação apresentada no vídeo.
  • Moonshine Tiny version two (modelo): Modelo comparado a Whistle e Whisper Base em tamanho e velocidade.
  • Apache License 2.0 (conceito): Licença indicada para Whistle no vídeo.

00:00 Olá, aqui é o Prompt Engineer. Neste vídeo, vamos conhecer um modelo de fala para texto que tem apenas 16,9 megabytes. Sim, megabytes. Certo, este é o Whistle, da Cactus Compute, e o modelo inteiro está em um único arquivo: whistle.kext. Você pode vê-lo aqui mesmo na lista de arquivos. Vale lembrar que tudo o que executo neste vídeo está no meu próprio laptop Windows, usando apenas a CPU, sem GPU. Vamos testar. É um modelo de reconhecimento de fala executado no dispositivo, e a página do modelo diz que ele foi feito para celulares, dispositivos vestíveis, robôs, casas inteligentes e até microcontroladores. Ele aceita áudio mono de 16 kHz com até 30 segundos em uma

00:33 única passagem. A saída é a transcrição, o idioma, o horário de cada palavra e o embedding do encoder, caso você queira fazer correspondências sem decodificar. Ele oferece suporte a sete idiomas: inglês, alemão, francês, espanhol, italiano, holandês e polonês. O idioma é detectado automaticamente, a menos que você o defina. Por baixo dos panos, ele usa o mesmo mecanismo que o Needle, o outro modelo da Cactus: o mesmo contêiner .kext, a mesma quantização e os mesmos kernels de CPU. Os pesos usam de dois a quatro bits, e a licença é Apache 2.0. Agora, vamos ver a comparação deles de tamanho com o Whisper Base e o Moonshine Tiny versão dois. Primeiro, o Whistle tem 16,9

01:08 megabytes, o Moonshine tem 41,9 e o Whisper Base tem 145,3. Então, ele é cerca de oito vezes e meia menor que o Whisper Base. O tempo até o primeiro token em um clipe de 10 segundos é de 11,1 milissegundos para o Whistle, 22,8 para o Moonshine e 73,2 para o Whisper; a velocidade de decodificação é de 1.319 tokens por segundo para o Whistle, contra 266 e 262. Vale lembrar que esses números de velocidade vêm do Apple M4 Pro deles, não do meu laptop. Quanto à precisão, a taxa de erro de palavras do Whistle é de 4,31% no

01:40 LibriSpeech test-clean e 10,49 no test-other, 7,65 no SPG by speech e 7,61 no TED-LIUM. O resultado piora nos testes mais difíceis: 19,01 no earnings, 22 e 26,07 no AME. Então, é um bom começo para um arquivo de 16,9 MB, mas ele não vai superar os modelos grandes em áudio de reuniões com ruído, e a própria página do modelo mostra isso. A instalação é feita com um comando: pip install cactus needle. A instalação básica basta para um arquivo WAV de 16 kHz. Para outras taxas de amostragem ou para usar o microfone, você precisa do extra

02:14 mic. Depois, o código tem três linhas: import needle e needle.transcribe com o caminho do seu clipe. Para o teste, criei um clipe com a voz do Windows que diz: “Apague as luzes da cozinha e ajuste um timer para 10 minutos.” E você pode ver que ele me devolveu: “Apague as luzes da cozinha e ajuste um timer para 10 minutos.” Ele também retorna o idioma e o tempo até o primeiro token: 107 milissegundos no meu laptop, e 278 tokens por segundo. O modelo foi baixado na primeira vez e, no disco, o arquivo tem 16.919.407

02:45 bytes. Agora, se eu executar de novo, a execução com o modelo já carregado leva cerca de 0,11 segundo para esse clipe de 3 segundos. Esse é o tempo da chamada inteira em uma CPU de laptop comum. Em seguida, os timestamps das palavras. Eu passo word timestamps igual a true, e cada palavra retorna com um início, um fim e uma probabilidade. Aqui, kitchen começa em 0,88 segundo, termina em 1,12 e tem probabilidade de 0,99. A palavra com a menor probabilidade neste clipe é 10, com 0,94, e foi escrita como o algarismo 10. Também há ponderação por palavras-chave. Você passa uma

03:16 lista, como cactus e needle, e ele favorece essas grafias durante a busca. Então, nomes e palavras de produtos aparecem corretamente, certo? Meu clipe de teste não contém essas palavras, então ele apenas retornou a mesma frase, e não vou afirmar mais do que isso. Também testei um arquivo WAV silencioso. A saída foi uma string vazia. Ele não inventou texto, algo que a página do modelo promete e que pude confirmar. Se quiser disponibilizá-lo, a página do modelo diz: “A pasta de cada plataforma tem um binário needle, uma biblioteca estática e um cabeçalho. Há uma API C com needle load e needle transcribe, além de um componente WASI. Você também pode encadeá-lo

03:48 com o needle. Um comando transcreve o clipe, executa o texto com base no seu arquivo de ferramentas e fornece um JSON. Então, neste vídeo, vimos um modelo de fala para texto que consiste em um único arquivo de 16,9 MB, funciona na CPU e transcreveu corretamente meu clipe de teste em cerca de um décimo de segundo. Se tiver interesse, você pode conferir no seu próprio sistema também e me dizer como foi. O modelo é o Whisper, da Cactus Compute. Obrigado por assistir e obrigado à Cactus Compute por disponibilizar isso. Até o próximo vídeo. Confira o próximo vídeo.

Transcrição original

[00:00] Hey, this is Prompt Engineer. In this video we look at a speech-to-text model that is just 16.9 megabytes. Yes, megabytes. All right, this is Whistle from Cactus Compute and the whole model is one file, whistle.kext. You can see it right here in the file list. Now, mind you that everything I run in this video is on my own Windows laptop, CPU only, no GPU. Let’s go ahead and test this out. So, it’s an on-device speech recognition model and the card says it’s made for phones, wearables, robots, smart home, and even microcontrollers. It takes 16 kHz mono audio up to 30 seconds in one

[00:33] pass. The output is the transcript, the language, the time of every word, and the encoder embedding if you want to do matching without decoding. It supports seven languages, English, German, French, Spanish, Italian, Dutch, and Polish. And the language is auto-detected unless you set it. Under the hood, it uses the same engine as Needle, the other model from Cactus, same.kext container, same quantization, same CPU kernels. The weights are two to four-bit and the license is Apache 2.0. Now, let’s look at their comparison against Whisper Base and Moonshine Tiny version two size. First, Whistle is 16.9

[01:08] megabytes, Moonshine is 41.9, and Whisper Base is 145.3. So, that’s roughly eight and a half times smaller than Whisper Base. Time to first token on a 10-second clip, 11.1 milliseconds for Whistle, 22.8 for Moonshine, 73.2 for Whisper, and decode speed is 1,319 tokens per second for Whistle against 266 and 262. Mind you, these speed numbers are from their Apple M4 Pro, not from my laptop. For accuracy, the word error rate for Whistle is 4.31% on

[01:40] LibriSpeech test-clean and 10.49 on test-other, 7.65 on SPG by speech, and 7.61 on TED-LIUM. It goes higher on the hard ones, 19.01 on earnings, 22 and 26.07 on AME. So, this is a good start for a 16.9 MB file, but it is not going to beat the big models on noisy meeting audio, and the card itself shows that. Setting it up is one command, pip install cactus needle. Base install is enough for a 16 kHz wave file. For other sample rates or the microphone, you need

[02:14] the mic extra. Then the code is three lines, import needle, and needle.transcribe with the path of your clip. For the test, I made a clip with the Windows voice that says, “Turn off the kitchen lights and set a timer for 10 minutes.” And you can see that it gave me back, “Turn off the kitchen lights and set a timer for 10 minutes.” It also returns the language and the time to first token, 107 milliseconds on my laptop, and 278 tokens per second. The model downloaded itself the first time, and on disk, the file is 16,919,407

[02:45] bytes. Now, if I run it again, the warm run takes about 0.11 seconds for that 3-second clip. That is the whole call on a normal laptop CPU. Next, word timestamps. I pass word timestamps equals true, and every word comes back with a start, an end, and a probability. If you look here, kitchen starts at 0.88 seconds, ends at 1.12, probability 0.99. The lowest one in this clip is 10 at 0.94, and it was written as a digit 10. There’s also keyword biasing. You pass a

[03:16] list like cactus and needle, and it favors those spellings in the search. So, names and product words come out, right? My test clip doesn’t have those words, so it just returned the same sentence, and I’m not going to claim more than that. And I tried a silent wave file. The output was an empty string. It didn’t invent text, which is something the card promises, and I could confirm. If you want to ship it, the card says, “Each platform folder has a needle binary, a static library, and a header. There is a C API with needle load and needle transcribe, and there is a WASI component. You can also chain it

[03:48] with needle. One command transcribes the clip, runs the text against your tools file and gives you one JSON. So, in this video we have seen a speech-to-text model that is a single 16.9 MB file, runs on the CPU, and transcribed my test clip correctly in about a tenth of a second. If you’re interested, you can go ahead and check this out on your own system as well, and let me know how it goes. The model is Whisper by Cactus Compute. Thanks for watching, and thanks to Cactus Compute for putting this out. I’ll see you in another one. Check out the next video.