ml.apps — Aplicações de ML¶
O módulo ml.apps contém classes de aplicação de ML de alto nível construídas sobre ml.Model.
classe MicroSpeech – Reconhecimento de Fala¶
O objeto MicroSpeech reconhece palavras faladas simples usando o modelo MicroSpeech do TensorFlow Lite for Microcontrollers. O modelo padrão reconhece "Yes" e "No".
- class ml.apps.MicroSpeech(preprocessor: ml.Model = None, micro_speech: ml.Model = None, labels: list[str] = None, **kwargs)¶
Cria um objeto MicroSpeech.
preprocessoré oml.Modelde pré-processamento de áudio. Se forNone,/rom/audio_preprocessor.tfliteé carregado.micro_speeché oml.Modelde reconhecimento de fala. Se forNone,/rom/micro_speech.tfliteé carregado.labelsé uma lista de strings de rótulo correspondentes às categorias de saída do modelo. Se forNone, os rótulos são obtidos demicro_speech.labels.Quaisquer argumentos de palavra-chave adicionais são encaminhados para
audio.init()(o periférico de áudio é inicializado comchannels=1,frequency=16000esamples=320).- audio_callback(buf: bytes) None¶
Callback interno de streaming de áudio. Acrescenta novas amostras de
bufao buffer de áudio rolante, atualiza o espectrograma executando o modelopreprocessorna janela mais recente e atualiza o histórico de predições executando o modelomicro_speechno espectrograma. Normalmente não é chamado diretamente.
- start_audio_streaming() None¶
Limpa o espectrograma e o histórico de predições e então inicia o streaming de áudio com
MicroSpeech.audio_callbackcomo callback. Não faz nada se o streaming já estiver iniciado.
- listen(timeout: int = 0, callback: callable = None, threshold: float = 0.65, filter: list[str] = ['Yes', 'No']) tuple[str, numpy.ndarray]¶
Escuta por uma palavra falada e retorna uma tupla
(label, average_scores)assim que um rótulo cujo score médio esteja acima dethresholde esteja contido emfilterfor detectado. ChamaMicroSpeech.start_audio_streamingse ainda não estiver fazendo streaming.timeouté o tempo máximo, em milissegundos, para escutar. Se for0, escuta indefinidamente até que uma palavra seja reconhecida. Se for-1, executa em modo não bloqueante e retorna imediatamente com(None, average_scores)se nenhuma palavra for reconhecida; o streaming de áudio permanece em execução. Para qualquer valor positivo, escuta por aquela quantidade de milissegundos e então retorna(None, average_scores)no timeout.callbacké um chamável opcional invocado comocallback(label, average_scores)quando uma palavra é reconhecida, em vez de retornar. Combinado comtimeout=0, isso permite reconhecimento contínuo.thresholdé a confiança média mínima exigida para aceitar um reconhecimento.filteré a lista de strings de rótulo a aceitar. Reconhecimentos fora dessa lista são ignorados.