github에서는 오직 source code의 history를 저장하기 위함. 그래서 수정된 코드만 업로드하여 이력을 관리할것임. D:\STT_V1\STT\RealtimeSTT_Button\tests\ 경로에 faster_whisper_model, silero_model 폴더 및 내부 파일을 넣어야 정상적으로 코드가 작동됩니다. 필요하시면 [email protected]으로 연락주세요.
v1.0 : pvporcupine 모델 wake word 활용 코드 수정 pvporcupine_access_key, pvporcupine_keyword_paths ...
v1.1 : 버튼식 음성 처리 프로세스에서 연속적 음성 처리 프로세스로 변경했고, 시리얼 통신 USB PORT 연결 끊김 시 재연결 반복 시도 기능 추가. qt_main.py 코드 QT 기능 추가
v1.2 : AudioToTextRecorder 클래스의 audio_data_worker process graceful shutdown, recording_worker process graceful shutdown 적용 (상세 내용은 음성인식모듈프로그램관련기술_습득교훈_개선사항_자체개발 excel 파일의 개선사항 12번, 15번 참고)
-
QT 클라이언트
- 음성 인식에 필요한 파라미터 Config 설정
- 마이크 연결 확인, PORT 연결 확인
- 음성 인식 시작 / 종료
- 음성 인식 결과 출력 창 / 결과 문구 초기화 버튼
- 음성 인식 시나리오 조회 / 삭제 / 수정 / 추가 기능
-
음성 인식 기능 (AudioToTextRecorder)
- sub_processer : _audio_data_worker (sr, chunksize 설정 기준 오디오 stream 열기 pyaudio.PyAudio().open(...), 마이크 재연결 시도 기능)
- sub_processer : _transcription_worker (STT 모델 로드, audio data 전달받아서 transcribe 처리, transcribe 최종 text 추론 결과 전달)
- main processer : recording_thread, VAD(silero_speech)_thread, multi process parameters
-
시리얼 통신 기능
- 시리얼 통신 연결 기능, USB 연결 끊김 시 재연결 시도 기능 포함
- 시리얼 통신 연결 후 MICOM 장치와 데이터 송/수신 기능 (수신 받은 데이터 queue로 관리)
-
시나리오 텍스트 매칭 기능
- 2*M / (len(inf_text) + len(scenario_text)). M : 음절 매칭 수
- 향후 M / len(scenario_text) 시나리오 텍스트 기준으로 매칭 유사도 측정 알고리즘으로 변경 예정
- 2*M / (len(inf_text) + len(scenario_text)). M : 음절 매칭 수
-
qt_main.py : Main code.
- Thomas Connection 객체 생성
- Mic Connection 기능
- RealTimeSTT 객체 생성
- scenario text matching 객체 생성
- MICOM Sending the Event parameters
-
async_serial_protocol.py : Serial 통신을 위한 파라미터를 저장하고, 이벤트 기능을 통해 전달 받은 event_flag 변수를 sending하는 클래스를 포함하는 src
- MICOM Connection / Reconnection, parameters 송/수신
-
text_similarity.py : Senario reference와 Prediction text 간의 유사도를 계산하는 변수와 함수가 구현된 클래스를 포함하는 src.
-
utils.py : 기타 처리 기능들이 포함되는 src.
- event_matching
- list_input_devices
- check_mic_connection
-
params.py : 시나리오에 reference text 및 전역 parameters가 포함되는 src.
- recorder_config.yaml 파일의 config 파라미터 정보를 읽어와서 초기화.
- 상대경로가 필요한 파라미터에 상대경로 적용
- 프로그램에서 관련 파라미터 업데이트 시 파라미터 업데이트 처리
-
recorder_config.yaml : 프로그램에 필요 파라미터 설정 값 세팅