ml.apps — ML 앱¶
ml.apps 모듈에는 ml.Model 위에 구축된 고수준 ML 애플리케이션 클래스가 포함되어 있습니다.
class MicroSpeech – 음성 인식¶
MicroSpeech 객체는 TensorFlow Lite for Microcontrollers의 MicroSpeech 모델을 사용하여 간단한 발화 단어를 인식합니다. 기본 모델은 "Yes"와 "No"를 인식합니다.
- class ml.apps.MicroSpeech(preprocessor: ml.Model = None, micro_speech: ml.Model = None, labels: list[str] = None, **kwargs)¶
MicroSpeech 객체를 생성합니다.
preprocessor는 오디오 전처리기ml.Model입니다.None이면/rom/audio_preprocessor.tflite가 로드됩니다.micro_speech는 음성 인식ml.Model입니다.None이면/rom/micro_speech.tflite가 로드됩니다.labels는 모델 출력 카테고리와 일치하는 레이블 문자열 리스트입니다.None이면 레이블이micro_speech.labels에서 가져와집니다.추가 키워드 인수는 모두
audio.init()로 전달됩니다(오디오 주변장치는channels=1,frequency=16000,samples=320으로 초기화됩니다).- audio_callback(buf: bytes) None¶
내부 오디오 스트리밍 콜백입니다.
buf의 새 샘플을 롤링 오디오 버퍼에 추가하고, 최신 윈도우에 대해preprocessor모델을 실행하여 스펙트로그램을 업데이트하며, 스펙트로그램에 대해micro_speech모델을 실행하여 예측 기록을 업데이트합니다. 일반적으로 직접 호출하지 않습니다.
- start_audio_streaming() None¶
스펙트로그램과 예측 기록을 지운 다음,
MicroSpeech.audio_callback을 콜백으로 하여 오디오 스트리밍을 시작합니다. 스트리밍이 이미 시작된 경우에는 아무 작업도 하지 않습니다.
- listen(timeout: int = 0, callback: callable = None, threshold: float = 0.65, filter: list[str] = ['Yes', 'No']) tuple[str, numpy.ndarray]¶
발화 단어를 청취하고, 평균 점수가
threshold를 초과하며filter에 포함된 레이블이 검출되면(label, average_scores)튜플을 반환합니다. 아직 스트리밍 중이 아니면MicroSpeech.start_audio_streaming을 호출합니다.timeout은 청취할 최대 시간(밀리초)입니다.0이면 단어가 인식될 때까지 무기한 청취합니다.-1이면 비차단 모드로 실행되어 단어가 인식되지 않으면(None, average_scores)로 즉시 반환되며, 오디오 스트리밍은 계속 실행된 상태로 유지됩니다. 양수 값의 경우 해당 밀리초만큼 청취한 다음 타임아웃 시(None, average_scores)를 반환합니다.callback은 단어가 인식될 때 반환하는 대신callback(label, average_scores)로 호출되는 선택적 호출 가능 객체입니다.timeout=0과 결합하면 연속 인식이 가능합니다.threshold는 인식을 수락하는 데 필요한 최소 평균 신뢰도입니다.filter는 수락할 레이블 문자열 리스트입니다. 이 리스트에 없는 인식은 무시됩니다.