diff --git a/StresstestSpeeches/001.wav b/StresstestSpeeches/001.wav new file mode 100644 index 0000000..ae03ea3 --- /dev/null +++ b/StresstestSpeeches/001.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69991dcdd5245d56886317a157f08b715cf596d5454dca8431fa25e62342bebd +size 207438 diff --git a/StresstestSpeeches/002.wav b/StresstestSpeeches/002.wav new file mode 100644 index 0000000..1523c5c --- /dev/null +++ b/StresstestSpeeches/002.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30b8eaa0026080eb863f46cb6ec1fd5bf870368851bcbb07697fc987d5fea73c +size 228174 diff --git a/StresstestSpeeches/003.wav b/StresstestSpeeches/003.wav new file mode 100644 index 0000000..c23b77b --- /dev/null +++ b/StresstestSpeeches/003.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41d02668fc027c1ff858505e6fd831d41be0857a969bec74a6b645c95041f08a +size 691278 diff --git a/StresstestSpeeches/004.wav b/StresstestSpeeches/004.wav new file mode 100644 index 0000000..6ca54a3 --- /dev/null +++ b/StresstestSpeeches/004.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e7b36bcff499897e764082cdfbb5692cddec65022349d207ec8b2e58efd9f36 +size 311118 diff --git a/StresstestSpeeches/005.wav b/StresstestSpeeches/005.wav new file mode 100644 index 0000000..487d215 --- /dev/null +++ b/StresstestSpeeches/005.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d109028e33ec36007ddf22b14aa97061faa5b0abdc217bb60d8c24d7069e8bc +size 294990 diff --git a/StresstestSpeeches/006.wav b/StresstestSpeeches/006.wav new file mode 100644 index 0000000..506c238 --- /dev/null +++ b/StresstestSpeeches/006.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1e3e8c5afa04e0d9f17311be0de8a96deec0b6946cdf2ca51ae2bb714eaf83a +size 371022 diff --git a/StresstestSpeeches/007.wav b/StresstestSpeeches/007.wav new file mode 100644 index 0000000..a02d5f3 --- /dev/null +++ b/StresstestSpeeches/007.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc5db236ce233afbd889a2abd29e69cb3b48b049754ba74499d9d73895d5c343 +size 592206 diff --git a/StresstestSpeeches/008.wav b/StresstestSpeeches/008.wav new file mode 100644 index 0000000..c9bceb3 --- /dev/null +++ b/StresstestSpeeches/008.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92ea0741bbac01e9bd7143ee8aa908274f1512fb7c098d4a23d7fb522107b393 +size 502350 diff --git a/StresstestSpeeches/010.wav b/StresstestSpeeches/010.wav new file mode 100644 index 0000000..32a10ff --- /dev/null +++ b/StresstestSpeeches/010.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cedac4451cb635fcf3b5235feda98fd3b2e15e05ba80c926b3ab47bc0fb60fe8 +size 3207246 diff --git a/StresstestSpeeches/011.wav b/StresstestSpeeches/011.wav new file mode 100644 index 0000000..1dd69d9 --- /dev/null +++ b/StresstestSpeeches/011.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:896a09839a9b2c17933d20f9f3b0ef7f392527f079d8f8ce16c8e98853f7a125 +size 553038 diff --git a/StresstestSpeeches/012.wav b/StresstestSpeeches/012.wav new file mode 100644 index 0000000..4182660 --- /dev/null +++ b/StresstestSpeeches/012.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c29a0150efdac47647bfb34ad99182c0e80d688637c69ce80e711f19dc0692d +size 138318 diff --git a/StresstestSpeeches/013.wav b/StresstestSpeeches/013.wav new file mode 100644 index 0000000..ec38ba4 --- /dev/null +++ b/StresstestSpeeches/013.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ec7558f20881b6037d5cfb000f71f305fc9487cd0d71ea493e56689e09cbc5b +size 237390 diff --git a/StresstestSpeeches/014.wav b/StresstestSpeeches/014.wav new file mode 100644 index 0000000..a4b4bf0 --- /dev/null +++ b/StresstestSpeeches/014.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:257dbe01df381a49db438f4e6885d812af27dac78abb2b9ad9b50484e29261bb +size 506958 diff --git a/StresstestSpeeches/015.wav b/StresstestSpeeches/015.wav new file mode 100644 index 0000000..e26d519 --- /dev/null +++ b/StresstestSpeeches/015.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82ae4f442e01538596993d05b5f3b1bf17736c59a4fd275da188fcc55a0bad1c +size 191310 diff --git a/StresstestSpeeches/016.wav b/StresstestSpeeches/016.wav new file mode 100644 index 0000000..8bc3e10 --- /dev/null +++ b/StresstestSpeeches/016.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d125d0ba0c545f5374b2ee09a5bd0a13f68373eb0f005e3b3dc6dfd09b881cba +size 294990 diff --git a/StresstestSpeeches/017.wav b/StresstestSpeeches/017.wav new file mode 100644 index 0000000..8959a44 --- /dev/null +++ b/StresstestSpeeches/017.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9ba84de508345da22614a75547389b7f441555724581ca67a99d368c124e6a5 +size 441044 diff --git a/StresstestSpeeches/018.wav b/StresstestSpeeches/018.wav new file mode 100644 index 0000000..d8c350e --- /dev/null +++ b/StresstestSpeeches/018.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2631d6a61e26e8660fa67ff4a166df6dd1d5f4c5cb45b5f283cd9452d472c437 +size 28308 diff --git a/Unreal/Config/DefaultEngine.ini b/Unreal/Config/DefaultEngine.ini index 0c95da4..88f5116 100644 --- a/Unreal/Config/DefaultEngine.ini +++ b/Unreal/Config/DefaultEngine.ini @@ -119,3 +119,6 @@ bSupportUVFromHitResults=True SettingsStruct=/Game/SPIE/BP/S_SPIE_ConfigSettings.S_SPIE_ConfigSettings FileName=Spie_Config +[/Script/IOSRuntimeSettings.IOSRuntimeSettings] +bSupportsBackgroundAudio=True + diff --git a/Unreal/Content/Project/BP/BP_Project_Manager.uasset b/Unreal/Content/Project/BP/BP_Project_Manager.uasset index 2052da4..a89d9d3 100644 --- a/Unreal/Content/Project/BP/BP_Project_Manager.uasset +++ b/Unreal/Content/Project/BP/BP_Project_Manager.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c0660e2f11ac36b65408d53e0e75b032fafee919df5b4ffb0c4b72988b6a2240 -size 2822041 +oid sha256:def3186e22e40721a29d2f50e310ae5daba22eb7617cb3a4d7dfb29d3a289bda +size 2830725 diff --git a/Unreal/Content/SPIE/BP/BP_SPIE_Manager_Child.uasset b/Unreal/Content/SPIE/BP/BP_SPIE_Manager_Child.uasset index 6548dce..cb16eb9 100644 --- a/Unreal/Content/SPIE/BP/BP_SPIE_Manager_Child.uasset +++ b/Unreal/Content/SPIE/BP/BP_SPIE_Manager_Child.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5a9f4d1bcaeaabbde6b5f1826807548f0559fa6a166f5212c834163e6caddb10 -size 753038 +oid sha256:178d23da53c1b094bb031e392c001d81114ff6657878ba76a626f249e7ec3f2f +size 710795 diff --git a/Unreal/Content/SPIE/BP/Mode/DA_Mode_SPIE_SpieOne.uasset b/Unreal/Content/SPIE/BP/Mode/DA_Mode_SPIE_SpieOne.uasset index bf14ef7..e086ec2 100644 --- a/Unreal/Content/SPIE/BP/Mode/DA_Mode_SPIE_SpieOne.uasset +++ b/Unreal/Content/SPIE/BP/Mode/DA_Mode_SPIE_SpieOne.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:115258266218580cc681db7ec9cdadb167e88a7843e068b685ee4134f4562d39 -size 6002 +oid sha256:6277f7817b069b3e69a0a5c99b274235dbb671580ed51f61acdde91bb5afa7a2 +size 6012 diff --git a/Unreal/Content/SPIE/Widgets/WBP_Spie_Interaction.uasset b/Unreal/Content/SPIE/Widgets/WBP_Spie_Interaction.uasset index dc33812..e5c5b2e 100644 --- a/Unreal/Content/SPIE/Widgets/WBP_Spie_Interaction.uasset +++ b/Unreal/Content/SPIE/Widgets/WBP_Spie_Interaction.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e8d20f5caa213e98885952ef6342ea2661e7d91a82c902f3e5ad5a12eec1fc88 -size 1263923 +oid sha256:3f45ac2d803da7021fb6b6176b1e05d06137de61809970f53b3cf853935900bf +size 1273219 diff --git a/Unreal/Plugins/AvatarCore_Manager/Content/AvatarCoreManager.uasset b/Unreal/Plugins/AvatarCore_Manager/Content/AvatarCoreManager.uasset index 2bd0866..743c8f8 100644 --- a/Unreal/Plugins/AvatarCore_Manager/Content/AvatarCoreManager.uasset +++ b/Unreal/Plugins/AvatarCore_Manager/Content/AvatarCoreManager.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e313224b156a42f72b8883b0b2f30326f08ec73a89005b3c4c5575b10d7af0f8 -size 1851295 +oid sha256:e422a7b4a9e43fceda48d3d4da309c0c8a086e3f7dc8ed452a485d293a74dbc3 +size 1850919 diff --git a/Unreal/Plugins/AvatarCore_Manager/Content/StateManagement/BP_StateManager.uasset b/Unreal/Plugins/AvatarCore_Manager/Content/StateManagement/BP_StateManager.uasset index 2e93d15..5c2e226 100644 --- a/Unreal/Plugins/AvatarCore_Manager/Content/StateManagement/BP_StateManager.uasset +++ b/Unreal/Plugins/AvatarCore_Manager/Content/StateManagement/BP_StateManager.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:774148725543297ae271afb3919192283ca905ae6cfc9980b6784fadde8778ff -size 671653 +oid sha256:a88acbf5bc2ae6cd94f40ba0ad408a0feafe65230260ccbac81ffa056e2d21dc +size 695453 diff --git a/Unreal/Plugins/AvatarCore_Manager/Content/Widgets/Debug/Pages/W_DebugAvatarCoreManager.uasset b/Unreal/Plugins/AvatarCore_Manager/Content/Widgets/Debug/Pages/W_DebugAvatarCoreManager.uasset index 3f92410..aab77ec 100644 --- a/Unreal/Plugins/AvatarCore_Manager/Content/Widgets/Debug/Pages/W_DebugAvatarCoreManager.uasset +++ b/Unreal/Plugins/AvatarCore_Manager/Content/Widgets/Debug/Pages/W_DebugAvatarCoreManager.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d508d3f664eb5dce283e3695a088c011c69aab6911398de627542ec681fd3584 -size 157553 +oid sha256:4e28dc58e301db19aad0f0ff1c575cc052b01221e33adb31f00be215ce0cf857 +size 168557 diff --git a/Unreal/Plugins/AvatarCore_Manager/Content/Widgets/Debug/W_StressTester.uasset b/Unreal/Plugins/AvatarCore_Manager/Content/Widgets/Debug/W_StressTester.uasset new file mode 100644 index 0000000..11b16c4 --- /dev/null +++ b/Unreal/Plugins/AvatarCore_Manager/Content/Widgets/Debug/W_StressTester.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04e79d1add28bd85caa3891316f3389aa739cfd67c92adf5444b63feaa53f38d +size 418555 diff --git a/Unreal/Plugins/AvatarCore_STT/Content/Preprocessor/STTPreprocessor250ms.uasset b/Unreal/Plugins/AvatarCore_STT/Content/Preprocessor/STTPreprocessor250ms.uasset index e1df4b2..61c4272 100644 --- a/Unreal/Plugins/AvatarCore_STT/Content/Preprocessor/STTPreprocessor250ms.uasset +++ b/Unreal/Plugins/AvatarCore_STT/Content/Preprocessor/STTPreprocessor250ms.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:af79083f1a03bbc9eff34c3193935f852c83b2c55cef536de08d24ab5c620865 -size 6013 +oid sha256:d6fe044af2b2ba66d51c2d14f5f78c2c6ebf595ed7dd3c7d20665c6bfbefbd59 +size 5954 diff --git a/Unreal/Plugins/AvatarCore_STT/Source/AvatarCore_STT/Private/Processor/Azure/STTProcessorAzure.cpp b/Unreal/Plugins/AvatarCore_STT/Source/AvatarCore_STT/Private/Processor/Azure/STTProcessorAzure.cpp index 1aa5cc8..3fb2a71 100644 --- a/Unreal/Plugins/AvatarCore_STT/Source/AvatarCore_STT/Private/Processor/Azure/STTProcessorAzure.cpp +++ b/Unreal/Plugins/AvatarCore_STT/Source/AvatarCore_STT/Private/Processor/Azure/STTProcessorAzure.cpp @@ -200,7 +200,8 @@ void USTTProcessorAzure::OnRunnableEnded() else { // Ensure we return to SILENCE even if no result was produced // (empty audio, network timeout, etc.) to prevent stuck TRANSCRIBING state - STTManager->UserSpeechStateChanged(ESTTTalkingState::SILENCE); + if(!STTManager->IsBlocked()) + STTManager->UserSpeechStateChanged(ESTTTalkingState::SILENCE); } } } diff --git a/Unreal/Plugins/AvatarCore_STT/Source/AvatarCore_STT/Private/Recorder/STTRecorderDebugFile.cpp b/Unreal/Plugins/AvatarCore_STT/Source/AvatarCore_STT/Private/Recorder/STTRecorderDebugFile.cpp index 3ab1011..f24ee48 100644 --- a/Unreal/Plugins/AvatarCore_STT/Source/AvatarCore_STT/Private/Recorder/STTRecorderDebugFile.cpp +++ b/Unreal/Plugins/AvatarCore_STT/Source/AvatarCore_STT/Private/Recorder/STTRecorderDebugFile.cpp @@ -129,17 +129,12 @@ void USTTRecorderDebugFile::DebugPlayAudioFile(FString FilePath) STTManager->OnSTTError.Broadcast(FString::Printf(TEXT("Failed to parse WAV file: %s"), *FilePath)); return; } - - TArray SilenceChunks; - SilenceChunks.Init(0, AudioInformation.SampleRate * AudioInformation.NumChannels * 4); - - PCMData.Append(SilenceChunks); - STTManager->OnSTTLog.Broadcast(FString::Printf(TEXT("Playing Soundfile %s with Sample Rate: %i and %i channels"), *FilePath, AudioInformation.SampleRate, AudioInformation.NumChannels)); AudioComponent->Stop(); ProceduralSoundWave->SetSampleRate(AudioInformation.SampleRate); // Set the sample rate, e.g., 44.1 kHz ProceduralSoundWave->NumChannels = AudioInformation.NumChannels; + AudioComponent->SetSound(ProceduralSoundWave); if (ProceduralSoundWave && PCMData.Num() > 0) @@ -159,7 +154,7 @@ void USTTRecorderDebugFile::DebugPlayAudioFile(FString FilePath) GetWorld()->GetTimerManager().ClearTimer(PlaybackTimerHandle); } - STTManager->PTTStateChanged(true); + STTManager->OnSTTFakeButtonStateChanged.Broadcast(true); GetWorld()->GetTimerManager().SetTimer( PlaybackTimerHandle, // handle to cancel timer at a later time @@ -173,18 +168,20 @@ void USTTRecorderDebugFile::DebugPlayAudioFile(FString FilePath) void USTTRecorderDebugFile::SendChunk() { - // Send the PCM data in chunks - int32 ChunkSize = (AudioInformation.SampleRate/0.031f); // Number of samples per chunk + // Send the PCM data in chunks matching the timer interval (0.03s) + int32 ChunkSize = FMath::CeilToInt32(AudioInformation.SampleRate * AudioInformation.NumChannels * 0.03f); // Samples for 30ms int32 RemainingSamples = FMath::Min(ChunkSize, PCMData.Num() - SentChunks); + if (RemainingSamples <= 0) + { + GetWorld()->GetTimerManager().ClearTimer(PlaybackTimerHandle); + STTManager->OnSTTFakeButtonStateChanged.Broadcast(false); + STTManager->OnSTTLog.Broadcast(FString::Printf(TEXT("Finished sending %i audio chunks (SampleRate: %i Channels: %i)"), PCMData.Num(), AudioInformation.SampleRate, AudioInformation.NumChannels)); + return; + } TArray Chunk; Chunk.Append(&PCMData[SentChunks], RemainingSamples); OnChunkReceived.ExecuteIfBound(Chunk, AudioInformation); - SentChunks += ChunkSize; - if (SentChunks >= PCMData.Num()) { - GetWorld()->GetTimerManager().ClearTimer(PlaybackTimerHandle); - STTManager->PTTStateChanged(false); - STTManager->OnSTTLog.Broadcast(FString::Printf(TEXT("Finished sending %i audio chunks (SampleRate: %i Channels: %i)"), PCMData.Num(), AudioInformation.SampleRate, AudioInformation.NumChannels)); - } + SentChunks += RemainingSamples; } bool USTTRecorderDebugFile::ParseWavFile(const TArray& FileData, TArray& OutPCMData, FAudioInformation& OutAudioInformation) diff --git a/Unreal/Plugins/AvatarCore_STT/Source/AvatarCore_STT/Private/STTManagerBase.cpp b/Unreal/Plugins/AvatarCore_STT/Source/AvatarCore_STT/Private/STTManagerBase.cpp index ccb0925..d85c28d 100644 --- a/Unreal/Plugins/AvatarCore_STT/Source/AvatarCore_STT/Private/STTManagerBase.cpp +++ b/Unreal/Plugins/AvatarCore_STT/Source/AvatarCore_STT/Private/STTManagerBase.cpp @@ -147,6 +147,7 @@ void USTTManagerBase::ClearSTTManager() void USTTManagerBase::SetBlocked(bool isBlocked) { + if (!bIsInitialized) return; @@ -158,9 +159,12 @@ void USTTManagerBase::SetBlocked(bool isBlocked) UserSpeechStateChanged(ESTTTalkingState::BLOCKED); } else { - if (bDebugMode) - OnSTTLog.Broadcast("Set STT Unblocked"); - UserSpeechStateChanged(ESTTTalkingState::SILENCE); + if (CurrentSpeechState == ESTTTalkingState::BLOCKED) + { + if (bDebugMode) + OnSTTLog.Broadcast("Set STT Unblocked"); + UserSpeechStateChanged(ESTTTalkingState::SILENCE); + } } } @@ -365,23 +369,44 @@ void USTTManagerBase::SetPTTPostRollTime(float NewTime) PTTPostRollTime = NewTime; } -void USTTManagerBase::DebugSetFilePlayback(){ +void USTTManagerBase::DebugOpenFilePicker() +{ + USTTRecorderDebugFile* FileRecorder = DebugGetFileRecorder(); + FileRecorder->DebugOpenFilepicker(); +} + +void USTTManagerBase::DebugPlayFileAsSTT(FString File) +{ + USTTRecorderDebugFile* FileRecorder = DebugGetFileRecorder(); + FileRecorder->DebugPlayAudioFile(File); +} + +USTTRecorderDebugFile* USTTManagerBase::DebugGetFileRecorder() +{ USTTRecorderDebugFile* FileRecorder = Cast(STTRecorder); - if(FileRecorder) - FileRecorder->DebugOpenFilepicker(); - else + if (!FileRecorder) { STTRecorder->DestroySTTRecorder(); STTRecorder->RemoveFromRoot(); - USTTRecorderDebugFile* STTFileRecorder = NewObject(this); - STTFileRecorder->AddToRoot(); - STTFileRecorder->InitSTTRecorder(this, bDebugMode); - STTFileRecorder->OnChunkReceived.BindUFunction(STTPreprocessors[0], "OnChunkReceived"); - STTFileRecorder->DebugOpenFilepicker(); - STTRecorder = STTFileRecorder; + FileRecorder = NewObject(this); + FileRecorder->AddToRoot(); + FileRecorder->InitSTTRecorder(this, bDebugMode); + FileRecorder->OnChunkReceived.BindUFunction(STTPreprocessors[0], "OnChunkReceived"); + STTRecorder = FileRecorder; } + return FileRecorder; +} +void USTTManagerBase::DebugResetRecorder() +{ + STTRecorder->DestroySTTRecorder(); + STTRecorder->RemoveFromRoot(); + USTTRecorderBase* FileRecorder = NewObject(this, STTRecorderClass); + FileRecorder->AddToRoot(); + FileRecorder->InitSTTRecorder(this, bDebugMode); + FileRecorder->OnChunkReceived.BindUFunction(STTPreprocessors[0], "OnChunkReceived"); + STTRecorder = FileRecorder; } bool USTTManagerBase::IsSTTFullyInitialized() diff --git a/Unreal/Plugins/AvatarCore_STT/Source/AvatarCore_STT/Public/STTManagerBase.h b/Unreal/Plugins/AvatarCore_STT/Source/AvatarCore_STT/Public/STTManagerBase.h index 7c6da9a..36bcdff 100644 --- a/Unreal/Plugins/AvatarCore_STT/Source/AvatarCore_STT/Public/STTManagerBase.h +++ b/Unreal/Plugins/AvatarCore_STT/Source/AvatarCore_STT/Public/STTManagerBase.h @@ -17,11 +17,14 @@ DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FMulticastDelegateTranscriptionRe DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FMulticastDelegateSpeechStateChanged, ESTTTalkingState, TalkingState); DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FMulticastDelegateSpeechStateChangedForUI, ESTTTalkingState, TalkingState); DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FMulticastDelegateSTTBlocked, bool, IsBlocked); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FMulticastDelegateFakeButtonStateChanged, bool, IsPressed); DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FMulticastDelegateSTTLog, FString, LogContent); DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FMulticastDelegateSTTError, FString, LogError); DECLARE_DYNAMIC_MULTICAST_DELEGATE(FMulticastDelegateSpeechDetectedWhileBlocked); DECLARE_DYNAMIC_MULTICAST_DELEGATE(FMulticastDelegateIsReady); +class USTTRecorderDebugFile; + /** * */ @@ -41,6 +44,8 @@ public: UPROPERTY(BlueprintAssignable, Category = "AvatarCoreSTT") FMulticastDelegateTranscriptionReceived OnTranscriptionReceived; UPROPERTY(BlueprintAssignable, Category = "AvatarCoreSTT") + FMulticastDelegateFakeButtonStateChanged OnSTTFakeButtonStateChanged; + UPROPERTY(BlueprintAssignable, Category = "AvatarCoreSTT") FMulticastDelegateSTTLog OnSTTLog; UPROPERTY(BlueprintAssignable, Category = "AvatarCoreSTT") FMulticastDelegateSTTError OnSTTError; @@ -158,8 +163,16 @@ public: void SetPTTPostRollTime(float NewTime); UFUNCTION(BlueprintCallable, Category = "AvatarCoreSTT") - void DebugSetFilePlayback(); - + void DebugOpenFilePicker(); + + UFUNCTION(BlueprintCallable, Category = "AvatarCoreSTT") + void DebugPlayFileAsSTT(FString File); + + USTTRecorderDebugFile* DebugGetFileRecorder(); + + UFUNCTION(BlueprintCallable, Category = "AvatarCoreSTT") + void DebugResetRecorder(); + UFUNCTION(BlueprintCallable, Category = "AvatarCoreSTT") bool IsSTTFullyInitialized(); diff --git a/Unreal/Plugins/BTools/Content/DebugWidget/ChildWidgets/W_DebugWidget_EditableField.uasset b/Unreal/Plugins/BTools/Content/DebugWidget/ChildWidgets/W_DebugWidget_EditableField.uasset index 69cfe58..2eb7b6c 100644 --- a/Unreal/Plugins/BTools/Content/DebugWidget/ChildWidgets/W_DebugWidget_EditableField.uasset +++ b/Unreal/Plugins/BTools/Content/DebugWidget/ChildWidgets/W_DebugWidget_EditableField.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:23c959b068a4abc739c66ec7ae296bc58176bdc68c6463ed97127498b9cb7793 -size 267934 +oid sha256:bbe0aa606a6ea4c1510450ebc3338eea48ce9424e97612e3745a7eafda60fa4f +size 296903