본문으로 건너뛰기

플러그인 사용 방법

Runtime Speech Recognizer 플러그인은 들어오는 오디오 데이터에서 단어를 인식하도록 설계되었습니다. 엔진과 함께 작동하기 위해 whisper.cpp의 약간 수정된 버전을 사용합니다. 플러그인을 사용하려면 다음 단계를 따르세요:

에디터 측면

  1. 여기에 설명된 대로 프로젝트에 적합한 언어 모델을 선택하세요.

런타임 측면

  1. Speech Recognizer를 생성하고 필요한 매개변수를 설정하세요 (CreateSpeechRecognizer, 매개변수는 여기 참조).
  2. 필요한 델리게이트에 바인딩하세요 (OnRecognitionFinished, OnRecognizedTextSegmentOnRecognitionError).
  3. 음성 인식을 시작하세요 (StartSpeechRecognition).
  4. 오디오 데이터를 처리하고 델리게이트로부터 결과를 기다리세요 (ProcessAudioData).
  5. 필요할 때(예: OnRecognitionFinished 브로드캐스트 후) 음성 인식기를 중지하세요.

이 플러그인은 32비트 부동 소수점 인터리브드 PCM 형식의 들어오는 오디오를 지원합니다. Runtime Audio Importer와 잘 작동하지만, 직접적으로 의존하지는 않습니다.

인식 매개변수

이 플러그인은 스트리밍 및 비스트리밍 오디오 데이터 인식을 모두 지원합니다. 특정 사용 사례에 맞게 인식 매개변수를 조정하려면 SetStreamingDefaults 또는 SetNonStreamingDefaults를 호출하세요. 또한 스레드 수, 스텝 크기, 들어오는 언어를 영어로 번역할지 여부, 이전 전사를 사용할지 여부와 같은 개별 매개변수를 수동으로 설정할 수 있는 유연성이 있습니다. 사용 가능한 매개변수의 전체 목록은 인식 매개변수 목록을 참조하세요.

성능 향상

플러그인의 성능을 최적화하는 방법에 대한 팁은 성능 향상 방법 섹션을 참조하세요.

음성 활동 감지(VAD)

오디오 입력을 처리할 때, 특히 스트리밍 시나리오에서는 인식기에 도달하기 전에 빈 또는 노이즈만 있는 오디오 세그먼트를 필터링하기 위해 음성 활동 감지(VAD)를 사용하는 것이 좋습니다. 이 필터링은 Runtime Audio Importer 플러그인을 사용하여 캡처 가능한 사운드 웨이브 측에서 활성화할 수 있으며, 언어 모델이 노이즈에서 패턴을 찾고 잘못된 전사를 생성하려는 현상(환각)을 방지하는 데 도움이 됩니다.

최적의 음성 인식 결과를 위해 더 우수한 노이즈 내성과 더 정확한 음성 감지를 제공하는 Silero VAD 제공자를 사용하는 것이 좋습니다. Silero VAD는 Runtime Audio Importer 플러그인의 확장으로 사용할 수 있습니다. VAD 구성에 대한 자세한 지침은 음성 활동 감지 문서를 참조하세요. :::참고 아래 예제에서 복사 가능한 노드들은 호환성 이유로 기본 VAD 제공자를 사용합니다. 인식 정확도를 높이려면 다음과 같이 Silero VAD로 쉽게 전환할 수 있습니다:

  1. Silero VAD 확장 프로그램 섹션에 설명된 대로 Silero VAD 확장 프로그램 설치
  2. Toggle VAD 노드로 VAD를 활성화한 후 Set VAD Provider 노드를 추가하고 드롭다운에서 "Silero" 선택 :::

플러그인에 포함된 데모 프로젝트에서는 VAD가 기본적으로 활성화되어 있습니다. 데모 구현에 대한 자세한 내용은 데모 프로젝트에서 확인할 수 있습니다.

예제

플러그인의 Content -> Demo 폴더에 포함된 훌륭한 프로젝트 데모가 있으며, 구현 예제로 사용할 수 있습니다.

이 예제들은 스트리밍 및 비스트리밍 오디오 입력과 함께 Runtime Speech Recognizer 플러그인을 사용하는 방법을 보여주며, 예시로 Runtime Audio Importer를 사용하여 오디오 데이터를 얻습니다. 예제에서 보여주는 동일한 오디오 임포트 기능 세트(예: 캡처 가능한 사운드 웨이브 및 ImportAudioFromFile)에 접근하려면 RuntimeAudioImporter를 별도로 다운로드해야 합니다. 이 예제들은 핵심 개념을 설명하기 위한 것으로 오류 처리는 포함되지 않았습니다.

스트리밍 오디오 입력 예제

참고: UE 5.3 및 다른 버전에서는 Blueprint를 복사한 후 노드가 누락될 수 있습니다. 이는 엔진 버전 간 노드 직렬화 차이로 인해 발생할 수 있습니다. 구현 시 모든 노드가 제대로 연결되었는지 항상 확인하세요.

1. 기본 스트리밍 인식

이 예제는 마이크로부터 오디오 데이터를 스트림으로 캡처하기 위한 기본 설정을 보여주며, Capturable 사운드 웨이브를 사용하고 이를 음성 인식기에 전달합니다. 약 5초 동안 음성을 녹음한 후 인식을 처리하므로 빠른 테스트와 간단한 구현에 적합합니다. 복사 가능한 노드.

이 설정의 주요 특징:

  • 고정된 5초 녹음 지속 시간
  • 간단한 원샷 인식
  • 최소한의 설정 요구 사항
  • 테스트 및 프로토타이핑에 이상적

2. 제어된 스트리밍 인식

이 예제는 기본 스트리밍 설정을 확장하여 인식 프로세스에 대한 수동 제어를 추가합니다. 원할 때 인식을 시작하고 중지할 수 있으므로 인식이 발생하는 시점을 정밀하게 제어해야 하는 시나리오에 적합합니다. 복사 가능한 노드.

이 설정의 주요 특징:

  • 수동 시작/중지 제어
  • 연속 인식 기능
  • 유연한 녹음 지속 시간
  • 인터랙티브 애플리케이션에 적합

3. 음성 활성화 명령 인식

이 예제는 명령 인식 시나리오에 최적화되어 있습니다. 스트리밍 인식과 Voice Activity Detection (VAD)을 결합하여 사용자가 말을 멈출 때 자동으로 음성을 처리합니다. 인식기는 침묵이 감지되었을 때만 누적된 음성을 처리하기 시작하므로 명령 기반 인터페이스에 이상적입니다. 복사 가능한 노드.

이 설정의 주요 기능:

  • 수동 시작/중지 제어
  • 음성 세그먼트 감지를 위해 Voice Activity Detection (VAD) 활성화
  • 침묵 감지 시 자동 인식 트리거
  • 짧은 명령 인식에 최적화
  • 실제 음성만 인식하여 처리 오버헤드 감소

4. 최종 버퍼 처리와 함께 자동 초기화되는 음성 인식

이 예제는 다른 라이프사이클 처리 방식으로 음성 활성화 인식 접근법의 또 다른 변형입니다. 인식기를 초기화 중에 자동으로 시작하고 초기화 해제 중에 중지합니다. 주요 기능은 인식기를 중지하기 전에 마지막으로 누적된 오디오 버퍼를 처리하여 사용자가 인식 프로세스를 종료하려 할 때도 음성 데이터가 손실되지 않도록 합니다. 이 설정은 사용자가 말하는 도중에 중지하더라도 완전한 발화를 캡처해야 하는 애플리케이션에 특히 유용합니다. 복사 가능한 노드.

이 설정의 주요 기능:

  • 초기화 시 인식기 자동 시작
  • 초기화 해제 시 인식기 자동 중지
  • 완전히 중지하기 전에 최종 오디오 버퍼 처리
  • 효율적인 인식을 위해 Voice Activity Detection (VAD) 사용
  • 중지 시 음성 데이터 손실 방지

비스트리밍 오디오 입력

이 예제는 Imported sound wave에 오디오 데이터를 가져오고 오디오 데이터가 완전히 임포트되면 전체 오디오 데이터를 인식합니다. 복사 가능한 노드.