karashiiro / TextToTalk

Chat TTS plugin for Dalamud. Has support for triggers/exclusions, several TTS providers, and more!
MIT License
45 stars 30 forks source link

ElevenLabs support? #152

Open Roctose opened 1 year ago

Roctose commented 1 year ago

Less an issue, more a question to see if Eleven Labs might receive support at any point. I'm already paying for it, so it's hard to want to use any other API key, but also totally understand if that's out of scope or unreasonable.

karashiiro commented 1 year ago

Reopening and linking to https://github.com/karashiiro/TextToTalk/discussions/153

thehobbit85 commented 9 months ago

Is there any updates on this? It seems that the backend code is already on the master branch but the feature is still unavailable in-game.

karashiiro commented 9 months ago

It's on the testing version, I haven't pushed feature updates to the stable version for a while because of a config upgrade issue.

jmpnul commented 9 months ago

Thanks Karashiiro! It works amazingly well, but it absolutely destroys my quota. Could we get a caching system built in? The way I'd imagine it works is simply in the filesystem, with 1 folder per NPC. Then every unvoiced text dialog is hashed and the generated voice-line is saved in the folder as <dialog-hash>.mp3.

This way people could generate and save locally, then simply zip up the folder and share hundreds of generated voice lines with others, without the hassle of caching servers, bandwidth costs, or god forbid any legal issues that pop up with AI voices in the future.

thehobbit85 commented 9 months ago

I'm so sorry but I keep getting an error when I try to enable the test version of the plugin:

2023-10-10 21:31:15.894 -07:00 [ERR] [LOCALPLUGIN] Error while loading TextToTalk
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.IO.FileLoadException: Could not load file or assembly 'System.Net.Http, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Invalid parameter. (0x80070057 (E_INVALIDARG))
File name: 'System.Net.Http, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
 ---> System.ArgumentException: Invalid parameter. (0x80070057 (E_INVALIDARG))
   at TextToTalk.TextToTalk..ctor(DalamudPluginInterface pi, IKeyState keyState, IChatGui chat, IFramework framework, IClientState clientState, IGameGui gui, IDataManager data, IObjectTable objects, ICondition condition, ICommandManager commandManager, ISigScanner sigScanner, IGameInteropProvider gameInterop)
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.ConstructorInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at System.Reflection.ConstructorInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
   at System.Reflection.RuntimeConstructorInfo.InvokeWithManyArguments(RuntimeConstructorInfo ci, Int32 argCount, Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimeConstructorInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
   at Dalamud.IoC.Internal.ServiceContainer.CreateAsync(Type objectType, Object[] scopedObjects, IServiceScope scope) in C:\goatsoft\companysecrets\dalamud\IoC\Internal\ServiceContainer.cs:line 144
   at Dalamud.Plugin.Internal.Types.LocalPlugin.LoadAsync(PluginLoadReason reason, Boolean reloading) in C:\goatsoft\companysecrets\dalamud\Plugin\Internal\Types\LocalPlugin.cs:line 426
   at Dalamud.Plugin.Internal.PluginManager.LoadPluginAsync(FileInfo dllFile, LocalPluginManifest manifest, PluginLoadReason reason, Boolean isDev, Boolean isBoot, Boolean doNotLoad) in C:\goatsoft\companysecrets\dalamud\Plugin\Internal\PluginManager.cs:line 1382
2023-10-10 21:31:15.938 -07:00 [INF] [PLUGINM] Regular plugin failed to load, adding anyways: TextToTalk.dll
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.IO.FileLoadException: Could not load file or assembly 'System.Net.Http, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Invalid parameter. (0x80070057 (E_INVALIDARG))
File name: 'System.Net.Http, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
 ---> System.ArgumentException: Invalid parameter. (0x80070057 (E_INVALIDARG))
   at TextToTalk.TextToTalk..ctor(DalamudPluginInterface pi, IKeyState keyState, IChatGui chat, IFramework framework, IClientState clientState, IGameGui gui, IDataManager data, IObjectTable objects, ICondition condition, ICommandManager commandManager, ISigScanner sigScanner, IGameInteropProvider gameInterop)
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.ConstructorInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at System.Reflection.ConstructorInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
   at System.Reflection.RuntimeConstructorInfo.InvokeWithManyArguments(RuntimeConstructorInfo ci, Int32 argCount, Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimeConstructorInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
   at Dalamud.IoC.Internal.ServiceContainer.CreateAsync(Type objectType, Object[] scopedObjects, IServiceScope scope) in C:\goatsoft\companysecrets\dalamud\IoC\Internal\ServiceContainer.cs:line 144
   at Dalamud.Plugin.Internal.Types.LocalPlugin.LoadAsync(PluginLoadReason reason, Boolean reloading) in C:\goatsoft\companysecrets\dalamud\Plugin\Internal\Types\LocalPlugin.cs:line 426
   at Dalamud.Plugin.Internal.PluginManager.LoadPluginAsync(FileInfo dllFile, LocalPluginManifest manifest, PluginLoadReason reason, Boolean isDev, Boolean isBoot, Boolean doNotLoad) in C:\goatsoft\companysecrets\dalamud\Plugin\Internal\PluginManager.cs:line 1382