[求助]请问,虚幻引擎中的声波要怎么保存成本地文件呀?

我找了很多资料都没有找到方法,目前想用SaveArrayToFile(TArray, *FilePath)函数来保存,可是在USoundWave类中又找不到存储声音信息的二进制数组

Snipaste_2023-08-17_18-03-38

感谢您的回复,但是我需要的是在项目运行时导出为wav

运行时导出干嘛呢?描述一下你的需求?

导出后我想用python加工语音,python脚本里读取本地文件进行声音克隆,然后UE再去读取进行播放,现在读取已经实现了,但是保存成本地文件不行。

我使用runtime audio importer插件完成了读取,保存时出现了音波无效的问题,但sound是可以进行播放的

void UAssetManager::SaveSoundWaveToFile(USoundWave* SoundWave)
{
    if (SoundWave == nullptr)
    {
        return;
    }

    TArray<UObject*> ObjectsToExport;
    ObjectsToExport.Add(SoundWave);

    FAssetToolsModule& AssetToolsModule = FModuleManager::GetModuleChecked<FAssetToolsModule>("AssetTools");

    AssetToolsModule.Get().ExportAssetsWithDialog(ObjectsToExport, true);
}

原理就是用了编辑器导出按钮调用的函数。
这个函数我放在AssetManager里的,你可以放在你想要的地方。
我测试了能在PIE里用,但这个模块依赖了UnrealED,肯定不能打发行包。

1 Like

好吧,还是谢谢您

花了一天时间在网上找各种TArray的PCMData转换到USoundWave的方法,没想到的是虚幻已经有直接将文件保存成.wav的方法了 :rofl:


图1
这就是整个功能的蓝图节点图表,我放在了玩家控制器里,你看你习惯。


图2
没什么好解释的。

Snipaste_2023-08-23_11-49-03
图3
最终文件存放的位置。

有什么直接问,点个 :heart:吧。

1 Like