diff --git a/crates/voicevox_core/src/nonblocking.rs b/crates/voicevox_core/src/nonblocking.rs index 7187c57fa..d65a3b7c0 100644 --- a/crates/voicevox_core/src/nonblocking.rs +++ b/crates/voicevox_core/src/nonblocking.rs @@ -9,8 +9,13 @@ //! スレッドプールのサイズは、blockingクレートの説明にある通り`$BLOCKING_MAX_THREADS`で調整すること //! ができる。 //! +//! また未調査ではあるが、このモジュールについては[`cpu_num_threads`]は物理コアの数+1を指定するのが適切な可能性がある +//! ([VOICEVOX/voicevox_core#902])。 +//! //! [blocking]: https://docs.rs/crate/blocking //! [pollster]: https://docs.rs/crate/pollster +//! [VOICEVOX/voicevox_core#902]: https://github.com/VOICEVOX/voicevox_core/issues/902 +//! [`cpu_num_threads`]: crate::InitializeOptions::cpu_num_threads pub use crate::{ engine::open_jtalk::nonblocking::OpenJtalk, diff --git a/crates/voicevox_core/src/synthesizer.rs b/crates/voicevox_core/src/synthesizer.rs index e9240de86..c49763252 100644 --- a/crates/voicevox_core/src/synthesizer.rs +++ b/crates/voicevox_core/src/synthesizer.rs @@ -97,6 +97,16 @@ pub enum AccelerationMode { #[derive(Default)] pub struct InitializeOptions { pub acceleration_mode: AccelerationMode, + + /// CPU利用数を指定。0を指定すると環境に合わせたCPUが利用される。 + /// + /// # Performance + /// + /// 未調査ではあるが、[非同期版API]においては物理コアの数+1とするのが適切な可能性がある + /// ([VOICEVOX/voicevox_core#902])。 + /// + /// [非同期版API]: crate::nonblocking + /// [VOICEVOX/voicevox_core#902]: https://github.com/VOICEVOX/voicevox_core/issues/902 pub cpu_num_threads: u16, } diff --git a/crates/voicevox_core_python_api/python/voicevox_core/_rust/asyncio.pyi b/crates/voicevox_core_python_api/python/voicevox_core/_rust/asyncio.pyi index 4d665d1cc..199ced742 100644 --- a/crates/voicevox_core_python_api/python/voicevox_core/_rust/asyncio.pyi +++ b/crates/voicevox_core_python_api/python/voicevox_core/_rust/asyncio.pyi @@ -157,7 +157,8 @@ class Synthesizer: acceleration_mode ハードウェアアクセラレーションモード。 cpu_num_threads - CPU利用数を指定。0を指定すると環境に合わせたCPUが利用される。 + CPU利用数を指定。0を指定すると環境に合わせたCPUが利用される。未調査ではあるが、物理コアの数+1とするのが適切な可能性がある + (`VOICEVOX/voicevox_core#902 `_)。 """ def __init__( diff --git a/crates/voicevox_core_python_api/python/voicevox_core/asyncio.py b/crates/voicevox_core_python_api/python/voicevox_core/asyncio.py index 0dc5e0adb..b00caf6df 100644 --- a/crates/voicevox_core_python_api/python/voicevox_core/asyncio.py +++ b/crates/voicevox_core_python_api/python/voicevox_core/asyncio.py @@ -1,3 +1,14 @@ +# TODO: Rust API同様に、`$BLOCKING_MAX_THREADS`について言及 +""" +非同期API。 + +Performance +----------- + +未調査ではあるが、 ``cpu_num_threads`` 物理コアの数+1を指定するのが適切な可能性がある +(`VOICEVOX/voicevox_core#902 `_)。 +""" + # pyright: reportMissingModuleSource=false from ._rust.asyncio import Onnxruntime, OpenJtalk, Synthesizer, UserDict, VoiceModelFile diff --git a/crates/voicevox_core_python_api/python/voicevox_core/blocking.py b/crates/voicevox_core_python_api/python/voicevox_core/blocking.py index 631eb6a81..3e344f75b 100644 --- a/crates/voicevox_core_python_api/python/voicevox_core/blocking.py +++ b/crates/voicevox_core_python_api/python/voicevox_core/blocking.py @@ -1,3 +1,5 @@ +# TODO: Rust API同様のmodule levelのdocstringを書く + # pyright: reportMissingModuleSource=false from ._rust.blocking import ( AudioFeature,