Browse Source

Removed redundant enum for openai voice, remvoed vectors from search request, changed to openai realtime tts, added mew openai voices, changed defaults

master
Tillman Staffen 3 days ago
parent
commit
7e55240330
  1. BIN
      Unreal/Content/Project/BP/BP_Project_Manager.uasset
  2. BIN
      Unreal/Content/Project/BP/Base/UEC_AzureAISearch.uasset
  3. BIN
      Unreal/Content/Project/BP/EnumsAndStructs/S_ConfigSettings.uasset
  4. 58
      Unreal/Content/Schema/Spie_Config.schema.json
  5. 12
      Unreal/Plugins/AvatarCore_AI/Source/AvatarCore_AI/Public/RealtimeAPI/AvatarCoreAIRealtime.h
  6. 10
      Unreal/Plugins/AvatarCore_AI/Source/AvatarCore_AI/Public/RealtimeAPI/RealtimeAPIConfig.h

BIN
Unreal/Content/Project/BP/BP_Project_Manager.uasset

Binary file not shown.

BIN
Unreal/Content/Project/BP/Base/UEC_AzureAISearch.uasset

Binary file not shown.

BIN
Unreal/Content/Project/BP/EnumsAndStructs/S_ConfigSettings.uasset

Binary file not shown.

58
Unreal/Content/Schema/Spie_Config.schema.json

@ -4,7 +4,10 @@
"Debug",
"Volume",
"Engine Settings",
"Avatar Core"
"Avatar Core",
"STT Settings",
"AI Settings",
"TTS Settings"
],
"Variables": [
{
@ -262,7 +265,7 @@
"type": "string",
"default": "0Gc0wvOF2tTCr4APvZkDaieKCGeBR9c5EbC5utXgVWZUqu4IAEf6NQ721iHNu74SwfDoYSBGJHLmCbcXVDP+F4HKnwsfHr7WYi9Gv+CjJ7/UrOygkqlrP05hbHBrJiPLWDv4Gw==",
"tooltip": "Encrypted Azure API Key",
"category": "Avatar Core"
"category": "STT Settings"
}
},
{
@ -271,7 +274,7 @@
"type": "string",
"default": "germanywestcentral",
"tooltip": "Azure Region",
"category": "Avatar Core"
"category": "STT Settings"
}
},
{
@ -320,7 +323,7 @@
},
"STTReplacements": []
},
"category": "Avatar Core",
"category": "STT Settings",
"fields":
{
"bUsePTT":
@ -438,7 +441,7 @@
"type": "string",
"default": "UjzfgavJ45lCu+oB2vVAsKNbPT+k3XCv7t69Og6j0LmwxhD3OK5WDBxUvgKnuDrz3xuNHg==",
"tooltip": "Encrypted Azure OpenAI API Key",
"category": "Avatar Core"
"category": "AI Settings"
}
},
{
@ -447,7 +450,7 @@
"type": "string",
"default": "gpt-realtime",
"tooltip": "Open AI Model",
"category": "Avatar Core"
"category": "AI Settings"
}
},
{
@ -456,7 +459,7 @@
"type": "string",
"default": "aiwa-ai-new.openai.azure.com/openai",
"tooltip": "URL to Azure OpenAI Resource",
"category": "Avatar Core"
"category": "AI Settings"
}
},
{
@ -465,23 +468,25 @@
"type": "boolean",
"default": true,
"tooltip": "Direct audio generation by OpenAI",
"category": "Avatar Core"
"category": "AI Settings"
}
},
{
"CustomOpenAIVoice":
{
"type": "enum",
"default": "UNDEFINED",
"default": "coral",
"tooltip": "Only Set if you want to override the Avatars Voice",
"category": "Avatar Core",
"category": "AI Settings",
"enum": [
"UNDEFINED",
"alloy",
"ash",
"ballad",
"cedar",
"coral",
"echo",
"marin",
"sage",
"shimmer",
"verse"
@ -494,7 +499,7 @@
"type": "integer",
"default": 10,
"tooltip": "OpenAI Timeout in seconds",
"category": "Avatar Core"
"category": "AI Settings"
}
},
{
@ -503,7 +508,7 @@
"type": "float",
"default": 0.80000000000000004,
"tooltip": "Temperature of the AI Model",
"category": "Avatar Core"
"category": "AI Settings"
}
},
{
@ -512,7 +517,7 @@
"type": "integer",
"default": 2000,
"tooltip": "Max Token per Request of the AI Model",
"category": "Avatar Core"
"category": "AI Settings"
}
},
{
@ -521,7 +526,7 @@
"type": "string",
"default": "9ksww+/kHZPYMfUFTWSi1QgaDjXaB7vxdGKPgmfGhPEx321nfpdbkUnThXT4BWrkKMAR0MF2zJT17fJSday8yBiftv0=",
"tooltip": "Azure AI Search API Key",
"category": "Avatar Core"
"category": "AI Settings"
}
},
{
@ -530,7 +535,7 @@
"type": "string",
"default": "aiwa-ai-search.search.windows.net",
"tooltip": "Azure AIWA URL",
"category": "Avatar Core"
"category": "AI Settings"
}
},
{
@ -539,7 +544,15 @@
"type": "string",
"default": "aiwa-ai-search",
"tooltip": "Azure AI Search Indexname",
"category": "Avatar Core"
"category": "AI Settings"
}
},
{
"UseCachingSystem":
{
"type": "boolean",
"default": true,
"category": "TTS Settings"
}
},
{
@ -547,7 +560,7 @@
{
"type": "float",
"default": 0.01,
"category": "Avatar Core"
"category": "TTS Settings"
}
},
{
@ -555,16 +568,7 @@
{
"type": "float",
"default": 0.25,
"category": "Avatar Core"
}
},
{
"MaxConcurrentTTSGenerations":
{
"type": "integer",
"default": 2,
"tooltip": "Max concurrent Task for audio generation",
"category": "Avatar Core"
"category": "TTS Settings"
}
}
]

12
Unreal/Plugins/AvatarCore_AI/Source/AvatarCore_AI/Public/RealtimeAPI/AvatarCoreAIRealtime.h

@ -31,18 +31,6 @@ enum class EOpenAIRequestType : uint8 {
error UMETA(DisplayName = "Error")
};
UENUM(BlueprintType)
enum class EOpenAIRealtimeVoices : uint8 {
alloy UMETA(DisplayName = "alloy"),
ash UMETA(DisplayName = "ash"),
ballad UMETA(DisplayName = "ballad"),
coral UMETA(DisplayName = "coral"),
echo UMETA(DisplayName = "echo"),
sage UMETA(DisplayName = "sage"),
shimmer UMETA(DisplayName = "shimmer"),
verse UMETA(DisplayName = "verse")
};
UENUM(BlueprintType)
enum class EOpenAIRequestState : uint8 {
undefined UMETA(DisplayName = "UNDEFINED"),

10
Unreal/Plugins/AvatarCore_AI/Source/AvatarCore_AI/Public/RealtimeAPI/RealtimeAPIConfig.h

@ -12,8 +12,10 @@ enum class EOpenAIRealtimeVoice : uint8 {
alloy UMETA(DisplayName = "alloy"),
ash UMETA(DisplayName = "ash"),
ballad UMETA(DisplayName = "ballad"),
cedar UMETA(DisplayName = "cedar"),
coral UMETA(DisplayName = "coral"),
echo UMETA(DisplayName = "echo"),
marin UMETA(DisplayName = "marin"),
sage UMETA(DisplayName = "sage"),
shimmer UMETA(DisplayName = "shimmer"),
verse UMETA(DisplayName = "verse")
@ -31,27 +33,35 @@ public:
URealtimeAPIConfig(const FObjectInitializer& ObjectInitializer);
//Base URL - Change this to the correct Azure API URL
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AvatarCoreAI|Settings", meta = (ExposeOnSpawn = "true"))
FString BaseURL = "api.openai.com";
//Do we use the Microsoft Azure OpenAI API
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AvatarCoreAI|Settings", meta = (ExposeOnSpawn = "true"))
bool IsAzureOpenAI = false;
//The OpenAI API Key
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AvatarCoreAI|Settings", meta = (ExposeOnSpawn = "true"))
FString APIKey;
//OpenAI Model
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AvatarCoreAI|Settings", meta = (ExposeOnSpawn = "true"))
FString Model = "gpt-realtime";
//OpenAI RealtimeAPI Voice
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AvatarCoreAI|Settings", meta = (ExposeOnSpawn = "true"))
EOpenAIRealtimeVoice Voice = EOpenAIRealtimeVoice::alloy;
//Max Token per Request
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AvatarCoreAI|Settings", meta = (ExposeOnSpawn = "true"))
int MaxTokens = 1500;
//Temperature of the AI model
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AvatarCoreAI|Settings", meta = (ExposeOnSpawn = "true"))
float Temperature = 0.8f;
//Shall we forward all audio chunks directly to OpenAI - Does not work well, if we do not forward silence as well
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AvatarCoreAI|Settings", meta = (ExposeOnSpawn = "true"))
bool InputAudioStreaming = false;
};

Loading…
Cancel
Save