@@ -18,7 +18,6 @@ internal sealed class WorkerHost
1818 private readonly int _ownerPid ;
1919 private readonly WorkerFileLogger _logger ;
2020 private readonly WorkerSettingsProvider _settingsProvider ;
21- private VoicepeakOneShotSession _oneShotSession ;
2221
2322 private bool _running ;
2423 private Thread _ownerWatchThread ;
@@ -35,31 +34,22 @@ public WorkerHost(string pipeName, string settingsPath, int ownerPid, WorkerFile
3534 // Worker処理を開始
3635 public bool Run ( )
3736 {
38- try
37+ PluginSettingsFile settings = _settingsProvider . GetCurrent ( ) ;
38+ _logger . SetMinimumLevel ( settings . AppConfig . Debug . LogMinimumLevel ) ;
39+ if ( ! TryRunStartupValidation ( ) )
3940 {
40- PluginSettingsFile settings = _settingsProvider . GetCurrent ( ) ;
41- _logger . SetMinimumLevel ( settings . AppConfig . Debug . LogMinimumLevel ) ;
42- _oneShotSession = VoicepeakOneShot . Start ( AppConfigMapper . Map ( settings . AppConfig ) , _logger ) ;
43- if ( ! TryRunStartupValidation ( ) )
44- {
45- return false ;
46- }
47-
48- _running = true ;
49- StartOwnerWatchThread ( ) ;
41+ return false ;
42+ }
5043
51- while ( _running )
52- {
53- ServeSingleConnection ( ) ;
54- }
44+ _running = true ;
45+ StartOwnerWatchThread ( ) ;
5546
56- return true ;
57- }
58- finally
47+ while ( _running )
5948 {
60- _oneShotSession ? . Dispose ( ) ;
61- _oneShotSession = null ;
49+ ServeSingleConnection ( ) ;
6250 }
51+
52+ return true ;
6353 }
6454
6555 // 親プロセス監視スレッドを開始
@@ -217,14 +207,16 @@ private WorkerSpeakResponse ExecuteSpeak(WorkerSpeakRequest request)
217207 {
218208 try
219209 {
220- ApplyLatestSettings ( ) ;
210+ PluginSettingsFile settings = _settingsProvider . GetCurrent ( ) ;
211+ AppConfig config = AppConfigMapper . Map ( settings . AppConfig ) ;
212+ _logger . SetMinimumLevel ( settings . AppConfig . Debug . LogMinimumLevel ) ;
221213 _logger . Info ( "speak_start taskId=" + request . TaskId + " length=" + request . Text . Length ) ;
222214
223215 SpeakOnceRequest speakRequest = new SpeakOnceRequest ( ) ;
224216 speakRequest . Text = request . Text ;
225217
226- SpeakOnceResult result = _oneShotSession . SpeakOnceWait ( speakRequest ) ;
227- ClearInputOnceResult clearResult = _oneShotSession . ClearInputOnce ( ) ;
218+ SpeakOnceResult result = VoicepeakOneShot . SpeakOnceWait ( config , speakRequest , _logger ) ;
219+ ClearInputOnceResult clearResult = VoicepeakOneShot . ClearInputOnce ( config , _logger ) ;
228220 if ( ! clearResult . Succeeded )
229221 {
230222 _logger . Warn ( "post_speak_clear_failed taskId=" + request . TaskId + " status=" + clearResult . Status + " error=" + clearResult . ErrorMessage ) ;
@@ -280,8 +272,10 @@ private bool TryRunStartupValidation()
280272 {
281273 try
282274 {
283- ApplyLatestSettings ( ) ;
284- ValidateInputOnceResult validate = _oneShotSession . ValidateInputOnce ( ) ;
275+ PluginSettingsFile settings = _settingsProvider . GetCurrent ( ) ;
276+ AppConfig config = AppConfigMapper . Map ( settings . AppConfig ) ;
277+ _logger . SetMinimumLevel ( settings . AppConfig . Debug . LogMinimumLevel ) ;
278+ ValidateInputOnceResult validate = VoicepeakOneShot . ValidateInputOnce ( config , _logger ) ;
285279 if ( ! validate . Succeeded )
286280 {
287281 _logger . Warn ( "startup_validation_failed status=" + validate . Status + " error=" + validate . ErrorMessage ) ;
@@ -299,12 +293,7 @@ private bool TryRunStartupValidation()
299293 }
300294
301295 // 最新設定をセッションへ反映
302- private void ApplyLatestSettings ( )
303- {
304- PluginSettingsFile settings = _settingsProvider . GetCurrent ( ) ;
305- _logger . SetMinimumLevel ( settings . AppConfig . Debug . LogMinimumLevel ) ;
306- _oneShotSession . UpdateConfig ( AppConfigMapper . Map ( settings . AppConfig ) ) ;
307- }
296+
308297
309298}
310299
0 commit comments