给定文本+谷歌语音转文本音频,获取时间戳的单词列表?团结 C#



我的目标是对口型同步一个头像,该头像具有"a"和"m"等音素的混合形状。我有文本(通过 GPT-3 动态生成,因此无法提前知道)并将其提供给 Google 文本转语音 API,它给了我一个原始音频文件作为回报。我可以以某种方式分析此文件或执行其他操作以了解在播放音频剪辑时在什么时间说了什么单词吗?这将帮助我将单词解析为音素并相应地调整嘴巴。谢谢!

你可以 Unity 资产称为 SALSA LipSync Suite。

您可以使用AudioClip.GetData.基本上,它获取指定音频剪辑的数据。请注意,对于压缩的音频文件,仅当音频导入程序中的"加载类型"设置为"加载时解压缩"时,才能检索示例数据。不要使用压缩音频

您可以将其与返回音频源当前所在样本的AudioSource.timeSamples结合使用。

每次更新,您都可以根据当前时间样本的体积更改嘴唇的分离程度。

public float volMultiplier;
float[] clipData;
AudioSource aSrc;
AudioClip ac;
void Start()
{
aSrc = GetComponent<AudioSource>();
ac = aSrc.clip;
clipData = new float[ac.samples];
ac.GetData(clipData, 0);
}
void Update()
{
if (aSrc.isPlaying)
{
float curVol = clipData[ac.samples];
curVol *= volMultiplier;
// set positon of lips given this volume
// volume is -1 to 1 by default. (when volMultiplier
//is 1)
}
}

最新更新