iOS
기능 설명
이 기능을 사용하면 오디오를 Apple ARKit의 52개 blendshape로 변환할 수 있습니다. 자세한 내용은 ARFaceAnchor를 참고하십시오. blendshape 데이터를 기반으로 추가 개발을 수행할 수 있습니다. 예를 들어 Unity에 데이터를 전달하여 모델을 구동할 수 있습니다.
통합 방식
방법1: Tencent Effect SDK와 함께 사용
1. 오디오를 표정으로 변환하는 기능은 Tencent Effect SDK에 내장되어 있습니다.
2. Tencent Effect SDK를 다운로드합니다.
3. SDK를 통합합니다. 자세한 지침은 Tencent Effect SDK 통합하기를 참고하십시오.
4. Tencent Effect SDK 내의 Audio2Exp.framework를 프로젝트로 가져오고, 프로젝트의 target->General->Frameworks,Libraries,and Embedded Content에서 Embed & Sign으로 설정합니다.
방법2: Audio-to-Expression SDK 통합
다른 Tencent Effect 기능이 필요하지 않은 경우 Audio2Exp.framework 파일이 약 7MB인 Audio-to-Expression SDK를 통합할 수 있습니다. 프로젝트는 Audio2Exp.framework, YTCommonXMagic.framework 두 개의 동적 라이브러리를 가져오고, 프로젝트의 target->General->Frameworks,Libraries,and Embedded Content에서 Embed & Sign으로 설정합니다.
통합 단계
1. License를 설정합니다. 자세한 내용은 인증을 참고하십시오.
2. 모델 파일 구성: 모델 파일 audio2exp.bundle을 프로젝트 디렉터리로 복사합니다. 그 다음 Audio2ExpApi의 initWithModelPath: API를 호출하여 매개변수 audio2exp.bundle"모델 파일이 있는 경로를 전달합니다.
API 설명
API | 설명 |
+ (int)initWithModelPath:(NSString*)modelPath; | SDK를 초기화합니다. 이 API를 호출할 때 모델 파일의 경로를 전달합니다. 0은 초기화에 성공했음을 나타냅니다. |
+ (NSArray )parseAudio:(NSArray )inputData; | 입력은 오디오이며 1채널이어야 하며 샘플링 레이트는 16K여야 합니다. 배열 길이는 267(샘플링 포인트 267개)입니다. 출력은 52개의 blendshape에 해당하는 52개의 요소가 있는 float 배열입니다. 요소의 값 범위는 0에서 1까지이며 순서는 Apple에서 지정합니다. {"eyeBlinkLeft","eyeLookDownLeft","eyeLookInLeft","eyeLookOutLeft","eyeLookUpLeft","eyeSquintLeft","eyeWideLeft","eyeBlinkRight","eyeLookDownRight","eyeLookInRight","eyeLookOutRight","eyeLookUpRight","eyeSquintRight","eyeWideRight","jawForward","jawLeft","jawRight","jawOpen","mouthClose","mouthFunnel","mouthPucker","mouthRight","mouthLeft","mouthSmileLeft","mouthSmileRight","mouthFrownRight","mouthFrownLeft","mouthDimpleLeft","mouthDimpleRight","mouthStretchLeft","mouthStretchRight","mouthRollLower","mouthRollUpper","mouthShrugLower","mouthShrugUpper","mouthPressLeft","mouthPressRight","mouthLowerDownLeft","mouthLowerDownRight","mouthUpperUpLeft","mouthUpperUpRight","browDownLeft","browDownRight","browInnerUp","browOuterUpLeft","browOuterUpRight","cheekPuff","cheekSquintLeft","cheekSquintRight","noseSneerLeft","noseSneerRight","tongueOut"} |
+ (int)releaseSdk | 리소스를 해제합니다. 더 이상 기능을 사용할 필요가 없을 때 이 API를 호출하십시오. |
통합 코드 예시
// Audio-to-Expression sdk 초기화NSString *path = [[NSBundle mainBundle] pathForResource:@"audio2exp" ofType:@"bundle"];int ret = [Audio2ExpApi initWithModelPath:path];// 음성 데이터를 52개 blendshape 데이터로 변환NSArray *emotionArray = [Audio2ExpApi parseAudio:floatArr];// 릴리스 sdk[Audio2ExpApi releaseSdk];// Tencent Effect sdk xmgaic과 결합해 사용// 해당 리소스를 사용하여 뷰티필터 sdk 초기화self.beautyKit = [[XMagic alloc] initWithRenderSize:previewSize assetsDict:assetsDict];// avatar 소재 로딩[self.beautyKit loadAvatar:bundlePath exportedAvatar:nil completion:nil];// 52개의 blendshape 데이터를 뷰티필터 sdk에 전달하여 효과 확인[self.beautyKit updateAvatarByExpression:emotionArray];
참고:
녹음은
TXCAudioRecorder
를 참고하십시오.API 사용 방법에 대한 자세한 내용은
VoiceViewController
및 관련 클래스를 참고하십시오.