// Author: Lucas Vilas-Boas // Year: 2023 // Repo: https://github.com/lucoiso/UEAzSpeech #pragma once #include #include #include "AzSpeechPropertiesGetter.generated.h" DECLARE_DELEGATE_OneParam(FAvailableVoicesUpdated, TArray); DECLARE_DELEGATE_OneParam(FAudioDataGenerated, TArray); UCLASS(MinimalAPI, NotBlueprintable, NotPlaceable, Category = "Implementation") class UAzSpeechPropertiesGetter : public UObject { GENERATED_BODY() public: explicit UAzSpeechPropertiesGetter(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get()); FAvailableVoicesUpdated OnAvailableVoicesUpdated; FAudioDataGenerated OnAudioDataGenerated; UFUNCTION() void OnAvailableVoicesChanged(const TArray& Voices); UFUNCTION() void SynthesisCompleted(const TArray& AudioData); UFUNCTION() void TaskFail(); void Destroy(); };