오디오 처리 가이드
이 가이드는 입술 동기화 생성기에 오디오 데이터를 공급하기 위한 다양한 오디오 입력 방법을 설정하는 방법을 다룹니다. 진행하기 전에 설정 가이드를 완료했는지 확인하세요.
오디오 입력 처리
오디오 입력을 처리할 방법을 설정해야 합니다. 오디오 소스에 따라 여러 가지 방법이 있습니다.
- 마이크 (실시간)
- 마이크 (재생)
- 텍스트 음성 변환 (로컬)
- 텍스트 음성 변환 (외부 API)
- 오디오 파일/버퍼에서
- 스트리밍 오디오 버퍼
이 접근 방식은 마이크에 말하는 동안 실시간으로 입술 동기화를 수행합니다:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Runtime Audio Importer를 사용하여 Capturable Sound Wave 생성
- Pixel Streaming과 함께 Linux를 사용하는 경우, 대신 Pixel Streaming Capturable Sound Wave 사용
- 오디오 캡처를 시작하기 전에
OnPopulateAudioData델리게이트에 바인딩 - 바인딩된 함수에서 Runtime Viseme Generator의
ProcessAudioData호출 - 마이크에서 오디오 캡처 시작

Realistic Model은 Standard Model과 동일한 오디오 처리 워크플로우를 사용하지만, VisemeGenerator 대신 RealisticLipSyncGenerator 변수를 사용합니다.

Mood-Enabled Model은 동일한 오디오 처리 워크플로우를 사용하지만, MoodMetaHumanLipSyncGenerator 변수와 추가적인 무드 구성 기능을 사용합니다.

이 접근 방식은 마이크에서 오디오를 캡처한 다음, 입술 동기화와 함께 재생합니다:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Runtime Audio Importer를 사용하여 Capturable Sound Wave 생성
- Pixel Streaming과 함께 Linux를 사용하는 경우, 대신 Pixel Streaming Capturable Sound Wave 사용
- 마이크에서 오디오 캡처 시작
- 캡처 가능한 사운드 웨이브를 재생하기 전에
OnGeneratePCMData델리게이트에 바인딩 - 바인딩된 함수에서 Runtime Viseme Generator의
ProcessAudioData호출

Realistic Model은 Standard Model과 동일한 오디오 처리 워크플로우를 사용하지만, VisemeGenerator 대신 RealisticLipSyncGenerator 변수를 사용합니다.

Mood-Enabled Model은 동일한 오디오 처리 워크플로우를 사용하지만, MoodMetaHumanLipSyncGenerator 변수와 추가적인 무드 구성 기능을 사용합니다.

- 일반
- 스트리밍
이 접근 방식은 로컬 TTS를 사용하여 텍스트에서 음성을 합성하고 입술 동기화를 수행합니다:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Runtime Text To Speech를 사용하여 텍스트에서 음성 생성
- Runtime Audio Importer를 사용하여 합성된 오디오 가져오기
- 가져온 사운드 웨이브를 재생하기 전에
OnGeneratePCMData델리게이트에 바인딩 - 바인딩된 함수에서 Runtime Viseme Generator의
ProcessAudioData호출

Realistic Model은 Standard Model과 동일한 오디오 처리 워크플로우를 사용하지만, VisemeGenerator 대신 RealisticLipSyncGenerator 변수를 사용합니다.

Mood-Enabled Model은 동일한 오디오 처리 워크플로우를 사용하지만, MoodMetaHumanLipSyncGenerator 변수와 추가적인 무드 구성 기능을 사용합니다.

이 접근 방식은 실시간 입술 동기화와 함께 스트리밍 텍스트 음성 변환 합성을 사용합니다:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Runtime Text To Speech를 사용하여 텍스트에서 스트리밍 음성 생성
- Runtime Audio Importer를 사용하여 합성된 오디오 가져오기
- 스트리밍 사운드 웨이브를 재생하기 전에
OnGeneratePCMData델리게이트에 바인딩 - 바인딩된 함수에서 Runtime Viseme Generator의
ProcessAudioData호출

Realistic Model은 Standard Model과 동일한 오디오 처리 워크플로우를 사용하지만, VisemeGenerator 대신 RealisticLipSyncGenerator 변수를 사용합니다.

Mood-Enabled Model은 동일한 오디오 처리 워크플로우를 사용하지만, MoodMetaHumanLipSyncGenerator 변수와 추가적인 무드 구성 기능을 사용합니다.

- 일반
- 스트리밍
이 접근 방식은 Runtime AI Chatbot Integrator 플러그인을 사용하여 AI 서비스(OpenAI 또는 ElevenLabs)에서 합성 음성을 생성하고 입술 동기화를 수행합니다:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Runtime AI Chatbot Integrator를 사용하여 외부 API(OpenAI, ElevenLabs 등)를 통해 텍스트에서 음성 생성
- Runtime Audio Importer를 사용하여 합성된 오디오 데이터 가져오기
- 가져온 사운드 웨이브를 재생하기 전에
OnGeneratePCMData델리게이트에 바인딩 - 바인딩된 함수에서 Runtime Viseme Generator의
ProcessAudioData호출

Realistic Model은 Standard Model과 동일한 오디오 처리 워크플로우를 사용하지만, VisemeGenerator 대신 RealisticLipSyncGenerator 변수를 사용합니다.

Mood-Enabled Model은 동일한 오디오 처리 워크플로우를 사용하지만, MoodMetaHumanLipSyncGenerator 변수와 추가적인 무드 구성 기능을 사용합니다.

이 접근 방식은 Runtime AI Chatbot Integrator 플러그인을 사용하여 AI 서비스(OpenAI 또는 ElevenLabs)에서 합성 스트리밍 음성을 생성하고 입술 동기화를 수행합니다:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Runtime AI Chatbot Integrator를 사용하여 스트리밍 TTS API(예: ElevenLabs Streaming API)에 연결
- Runtime Audio Importer를 사용하여 합성된 오디오 데이터 가져오기
- 스트리밍 사운드 웨이브를 재생하기 전에
OnGeneratePCMData델리게이트에 바인딩 - 바인딩된 함수에서 Runtime Viseme Generator의
ProcessAudioData호출

Realistic Model은 Standard Model과 동일한 오디오 처리 워크플로우를 사용하지만, VisemeGenerator 대신 RealisticLipSyncGenerator 변수를 사용합니다.

Mood-Enabled Model은 동일한 오디오 처리 워크플로우를 사용하지만, MoodMetaHumanLipSyncGenerator 변수와 추가적인 무드 구성 기능을 사용합니다.

이 접근 방식은 미리 녹음된 오디오 파일이나 오디오 버퍼를 사용하여 입술 동기화를 수행합니다:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Runtime Audio Importer를 사용하여 디스크나 메모리에서 오디오 파일 가져오기
- 가져온 사운드 웨이브를 재생하기 전에
OnGeneratePCMData델리게이트에 바인딩 - 바인딩된 함수에서 Runtime Viseme Generator의
ProcessAudioData호출 - 가져온 사운드 웨이브를 재생하고 입술 동기화 애니메이션 관찰

Realistic Model은 Standard Model과 동일한 오디오 처리 워크플로우를 사용하지만, VisemeGenerator 대신 RealisticLipSyncGenerator 변수를 사용합니다.

Mood-Enabled Model은 동일한 오디오 처리 워크플로우를 사용하지만, MoodMetaHumanLipSyncGenerator 변수와 추가적인 무드 구성 기능을 사용합니다.

버퍼에서 스트리밍 오디오 데이터를 사용하려면 다음이 필요합니다:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- 스트리밍 소스에서 사용 가능한 float PCM 형식의 오디오 데이터(부동 소수점 샘플 배열) (또는 Runtime Audio Importer를 사용하여 더 많은 형식 지원)
- 샘플 레이트와 채널 수
- 오디오 청크가 사용 가능해지면 Runtime Viseme Generator의
ProcessAudioData를 이러한 매개변수와 함께 호출

Realistic Model은 Standard Model과 동일한 오디오 처리 워크플로우를 사용하지만, VisemeGenerator 대신 RealisticLipSyncGenerator 변수를 사용합니다.

Mood-Enabled Model은 동일한 오디오 처리 워크플로우를 사용하지만, MoodMetaHumanLipSyncGenerator 변수와 추가적인 무드 구성 기능을 사용합니다.

참고: 스트리밍 오디오 소스를 사용할 때는 왜곡된 재생을 피하기 위해 오디오 재생 타이밍을 적절히 관리해야 합니다. 자세한 내용은 Streaming Sound Wave 문서를 참조하세요.
처리 성능 팁
-
청크 크기:
ProcessingChunkSize구성 옵션을 증가시키면(예: 320, 480 또는 640 샘플) 품질이나 응답성에 미미한 영향을 주면서도 지연 시간을 눈에 띄게 개선할 수 있습니다. -
모델 유형: Realistic 모델을 사용할 때 Highly Optimized 모델 유형(기본적으로 선택됨)으로 전환하면 성능이 향상될 수 있습니다. 원본 모델은 특히 잡음이 많은 오디오에서 약간 더 나은 품질을 생성할 수 있습니다.
-
버퍼 관리: 무드 지원 모델은 320샘플 프레임(16kHz에서 20ms)으로 오디오를 처리합니다. 최적의 성능을 위해 오디오 입력 타이밍이 이와 일치하는지 확인하세요.
-
생성기 재생성: Realistic 모델을 사용할 때 비활성 기간 후에 새로운 오디오 데이터를 공급하려면 생성기를 다시 생성하는 것이 안정적인 작동에 도움이 됩니다.
다음 단계
오디오 처리를 설정한 후에는 다음을 수행할 수 있습니다: