iOS

機能説明


オーディオデータを入力すると、Apple ARKitの標準である52種類の表情のデータが出力されます。詳細については、ARFaceAnchorをご参照ください。これらの表情データを利用して、Unityに渡してモデルを動かすといった、さらに進んだ開発を行うことができます。

アクセス方法

方法1:Tencent Effect SDKと一緒に使用

1. 音声から表情sdkへの変換は、Tencent Effect SDKに結合されているため、最初の接続はTencent Effectのドキュメントに従って行う必要があります。
2. Tencent Effect SDK完全版をダウンロードします。
3. Tencent Effectの独立した統合のドキュメントを参照して統合を完了します。
4. Tencent Effect SDK完全版内のAudio2Exp.frameworkをプロジェクトに登録し、かつプロジェクトのtarget->General->Frameworks、Libraries、and Embedded ContentをEmbed & Signに設定します。

方法2:独立した音声表情変換SDKによる接続

音声から表情への変換のみが必要で、Tencent Effect SDKの機能を使用する必要がない場合は、独立した音声表情変換SDKの使用を検討することができます。Audio2Exp.frameworkパッケージは、約7MBです。プロジェクトにAudio2Exp.frameworkとYTCommonXMagic.frameworkの2つの動的ライブラリを導入し、かつプロジェクトのtarget->General->Frameworks、Libraries、and Embedded ContentをEmbed & Signに設定します。

統合の手順

1. Licenseを設定します。認証 をご参照ください。
2. モデルファイルの設定:必要なモデルファイルaudio2exp.bundleをプロジェクトディレクトリにコピーします。その後、Audio2ExpApiのinitWithModelPath:インターフェースを呼び出した際、パラメータaudio2exp.bundle"をモデルファイルが存在するパスに渡します。

インターフェースの説明

インターフェース
説明
+ (int)initWithModelPath:(NSString*)modelPath;
初期化し、モデルのパスを渡します。上記の説明をご参照ください。戻り値が0の場合は成功です。
+ (NSArray )parseAudio:(NSArray )inputData;
入力するのはオーディオデータであり、シングルチャネル、16Kサンプルレート、配列の長さは267(すなわち267のサンプリングポイント)である必要があります。出力されるデータは長さが52のfloat配列で、52の表情ベースを表し、値は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
使用完了後に呼び出し、リソースを解放します

統合コード例

// 音声表情変換sdkの初期化
NSString *path = [[NSBundle mainBundle] pathForResource:@"audio2exp" ofType:@"bundle"];
int ret = [Audio2ExpApi initWithModelPath:path];
// 音声データから52種類の表情データへの変換
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の表情データを美顔sdkに渡すと、効果を確認することができます
[self.beautyKit updateAvatarByExpression:emotionArray];
説明:
完全なサンプルコードについては、 美顔エフェクト SDK demoプロジェクトをご参照ください。
録音については、TXCAudioRecorderをご参照ください。
インターフェースの使用については、VoiceViewController およびその関連クラスをご参照ください。