UE4TTS文字转语音功能。

UE4TTS文字转语音功能。

留下一个文字转语音插件,看插件代码就行了,下面代码太烂了,就不用看了。
链接: https://pan.baidu.com/s/1US54U5sbzUH5oFIFbnfIEA 提取码: e37s 复制这段内容后打开百度网盘手机App,操作更方便哦

UE4TTS文字转语音功能。_第1张图片

创建一个C++类,这里使用的是FunctionLibrary类型C++类
引入头文件

#include 
#include 

在.Build.cs中加入一句话

PublicAdditionalLibraries.Add("atls.lib");

.h中定义三个函数

UFUNCTION(BlueprintCallable, Category = "TTS", meta = (DisplayName = "Start", Keywords = "Text To Speech"))
		static void Start();
UFUNCTION(BlueprintCallable, Category = "TTS", meta = (DisplayName = "Quit", Keywords = "Text To Speech"))
		static void Quit();
UFUNCTION(BlueprintCallable, Category = "TTS", meta = (DisplayName = "Speeak", Keywords = "Text To Speech"))
		static void Speak(const FString&Str);

在.cpp中实现函数

#include "BykerBlueprintFunctionLibrary.h"

static ISpVoice* pVoice; //初始化COM 

static HRESULT hr;


void UBykerBlueprintFunctionLibrary::Start()
{
	hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
}

void UBykerBlueprintFunctionLibrary::Quit()
{
	if (pVoice != NULL)
	{
		pVoice->Release();
		pVoice = NULL;
		CoUninitialize();

	}
}

void UBykerBlueprintFunctionLibrary::Speak(const FString & Str)
{
	pVoice = NULL;
	if (FAILED(CoInitialize(NULL)))
	{
		/*AfxMessageBox(_T("Error to intiliaze COM"));*/
		return;
	}
	// 初始化SAPI   
	hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
	ISpObjectToken* pSpObjectToken = NULL;
	if (SUCCEEDED(SpFindBestToken(SPCAT_VOICES, _T("language=804"), NULL, &pSpObjectToken)))// 804代表中文   
	{
		pVoice->SetVoice(pSpObjectToken); // 声音大小  
		pVoice->SetRate(0);// 语速  
		/*pVoice->Skip();*/
		pSpObjectToken->Release();
		
	}
	else
	{
		/*AfxMessageBox(_T("没有安装微软语音库!"));*/
		return;
	}
	if (SUCCEEDED(hr))
	{
		const TCHAR *t = TEXT("fdgfd");
		t = *Str;
		hr = pVoice->Speak(t, SPF_ASYNC, NULL);	
	}
}

需要注意的一点,要在关卡蓝图中的开始与结束事件后面调用Start与Quit函数
UE4TTS文字转语音功能。_第2张图片

然后调用Speeak函数(函数名刚发现手残打错了),输入文字后调用此函数就可以朗读了。
UE4TTS文字转语音功能。_第3张图片

如果需要中断朗读,需要调用Quit函数结束,再调用Start函数启动(不然下次就无法朗读了)。
UE4TTS文字转语音功能。_第4张图片

你可能感兴趣的:(UE4,UE4语音朗读,TTS,文字转语音,语音朗读文字)