플러그인 사용 방법
Runtime Speech Recognizer 플러그인은 입력 오디오 데이터에서 단어를 인식하도록 설계되었습니다. 이 플러그인은 엔진과 함께 작동하도록 약간 수정된 whisper.cpp 버전을 사용합니다. 플러그인을 사용하려면 다음 단계를 따르세요:
에디터 측
- 프로젝트에 적합한 언어 모델을 선택하세요. 자세한 내용은 여기를 참고하세요.
런타임 측
- Speech Recognizer를 생성하고 필요한 매개변수를 설정합니다 (CreateSpeechRecognizer, 매개변수는 여기 참조).
- 필요한 델리게이트를 바인딩합 니다 (OnRecognitionFinished, OnRecognizedTextSegment, OnRecognitionError).
- 음성 인식을 시작합니다 (StartSpeechRecognition).
- 오디오 데이터를 처리하고 델리게이트에서 결과를 기다립니다 (ProcessAudioData).
- 필요할 때 Speech Recognizer를 중지합니다 (예: OnRecognitionFinished 브로드캐스트 이후).
플러그인은 부동소수점 32비트 인터리브된 PCM 형식의 입력 오디오를 지원합니다. Runtime Audio Importer와 함께 잘 작동하지만, 직접적으로 의존하지는 않습니다.
인식 매개변수
플러그인은 스트리밍 및 비스트리밍 오디오 데이터 인식을 모두 지원합니다. 특정 사용 사례에 맞게 인식 매개변수를 조정하려면 SetStreamingDefaults
또는 SetNonStreamingDefaults
를 호출하세요. 또한 스레드 수, 단계 크기, 입력 언어를 영어로 번역할지 여부, 이전 전사를 사용할지 여부와 같은 개별 매개변수를 수동으로 설정할 수도 있습니다. 사용 가능한 매개변수의 전체 목록은 Recognition Parameter List에서 확인할 수 있습니다.
성능 향상
플러그인의 성능을 최적화하는 방법에 대한 팁은 How to improve performance 섹션을 참고하세요.
음성 활동 감지 (VAD)
특히 스트리밍 시나리오에서 오디오 입력을 처리할 때 음성 활동 감지(VAD)를 사용하여 빈 오디오 또는 노이즈만 포함된 세그먼트가 음성 인식기에 도달하지 않도록 필터링하는 것이 좋습니다. 이 필터링은 캡처 가능한 사운드 웨이브 측에서 Runtime Audio Importer 플러그인을 사용하여 활성화할 수 있으며, 언어 모델이 노이즈에서 패턴을 찾아 잘못된 전사를 생성하는 것을 방지하는 데 도움이 됩니다. VAD 구성에 대한 자세한 지침은 Voice Activity Detection 문서를 참고하세요.
플러그인에 포함된 데모 프로젝트에서는 기본적으로 VAD가 활성화되어 있습니다. 데모 구현에 대한 자세한 내용은 Demo Project에서 확인하세요.
예제
플러그인의 Content -> Demo 폴더에 포함된 훌륭한 프로젝트 데모를 참고하여 구현 예제로 사용할 수 있습니다.
이 예제는 Runtime Audio Importer를 이용하여 오디오 데이터를 가져오면서 Runtime Speech Recognizer 플러그인을 스트리밍 및 비스트리밍 오디오 입력 방식으로 사용하는 방법을 설명합니다. 예제 에서 제공하는 동일한 오디오 가져오기 기능을 사용하려면 RuntimeAudioImporter를 별도로 다운로드해야 합니다 (예: 캡처 가능한 사운드 웨이브 및 ImportAudioFromFile). 이 예제는 핵심 개념을 설명하기 위한 것이며 오류 처리 기능을 포함하지 않습니다.
스트리밍 오디오 입력 예제
참고: UE 5.3 및 기타 버전에서는 Blueprint를 복사한 후 누락된 노드가 발생할 수 있습니다. 이는 엔진 버전 간 노드 직렬화 방식의 차이로 인해 발생할 수 있으며, 모든 노드가 올바르게 연결되었는지 반드시 확인하세요.
1. 기본 스트리밍 인식
이 예제는 Capturable sound wave를 사용하여 마이크로폰에서 오디오 데이터를 스트리밍으로 캡처하고 Speech Recognizer에 전달하는 기본 설정을 보여줍니다. 약 5초 동안 음성을 녹음한 후 인식을 처리하므로, 빠른 테스트 및 간단한 구현에 적합합니다. 복사 가능한 노드.
이 설정의 주요 특징:
- 고정된 5초 녹음 시간
- 단순한 원샷 인식
- 최소한의 설정 요구사항
- 테스트 및 프로토타이핑에 적합
2. 제어 가능한 스트리밍 인식
이 예제는 인식 프로세스를 수동으로 제어할 수 있도록 기본 스트리밍 설정을 확장합니다. 사용자가 원하는 시점에 인식을 시작하고 중지할 수 있어, 정확한 인식 타이밍이 필요한 시나리오에 적합합니다. 복사 가능한 노드.
이 설정의 주요 특징:
- 수동 시작/중지 기능
- 연속적인 인식 가능
- 유연한 녹음 시간 설정
- 대화형 애플리케이션에 적합
3. 음성 활성화 명령 인식
이 예제는 명령 인식에 최적화된 설정입니다. 스트리밍 인식과 음성 활동 감지 (VAD)를 결합하여 사용자가 말을 멈췄을 때 자동으로 음성을 처리하도록 구성되었습니다. 침묵이 감지될 때만 누적된 음성을 처리하므로, 명령 기반 인터페이스에 적합합니다. 복사 가능한 노드.
이 설정의 주요 특징:
- 수동 시작/중지 기능
- VAD 활성화로 음성 세그먼트 감지
- 침묵이 감지될 때 자동 인식 수행
- 짧은 명령 인식에 최적화
- 실제 음성만 인식하여 처리 오버헤드 감소
비스트리밍 오디오 입력
이 예제는 오디오 데이터를 Imported sound wave로 가져온 후, 전체 오디오 데이터를 가져온 다음 한 번에 인식하는 방식을 보여줍니다. 복사 가능한 노드.