- server device mode: filter for monitor is not work
This commit is contained in:
w-okada 2023-07-02 03:03:33 +09:00
parent 2f0289f1c7
commit 07d26d3125
5 changed files with 55 additions and 6 deletions

View File

@ -67,6 +67,17 @@ body:
- "yes" - "yes"
validations: validations:
required: true required: true
- type: dropdown
id: sample-model
attributes:
label: Sample model
description: If the GUI won't start up, wait a several minutes. Alternatively, have you excluded it from your virus-checking software (at your own risk)?
options:
- "The GUI successfully launched."
- "no"
- "yes"
validations:
required: true
- type: input - type: input
id: vc-type id: vc-type
attributes: attributes:

File diff suppressed because one or more lines are too long

View File

@ -11,6 +11,7 @@ export const DeviceArea = (_props: DeviceAreaProps) => {
const { isConverting, audioInputForGUI, inputAudioDeviceInfo, setAudioInputForGUI, fileInputEchoback, setFileInputEchoback, setAudioOutputForGUI, audioOutputForGUI, outputAudioDeviceInfo } = useGuiState(); const { isConverting, audioInputForGUI, inputAudioDeviceInfo, setAudioInputForGUI, fileInputEchoback, setFileInputEchoback, setAudioOutputForGUI, audioOutputForGUI, outputAudioDeviceInfo } = useGuiState();
const [inputHostApi, setInputHostApi] = useState<string>("ALL"); const [inputHostApi, setInputHostApi] = useState<string>("ALL");
const [outputHostApi, setOutputHostApi] = useState<string>("ALL"); const [outputHostApi, setOutputHostApi] = useState<string>("ALL");
const [monitorHostApi, setMonitorHostApi] = useState<string>("ALL");
const audioSrcNode = useRef<MediaElementAudioSourceNode>(); const audioSrcNode = useRef<MediaElementAudioSourceNode>();
const { getItem, setItem } = useIndexedDB({ clientType: null }); const { getItem, setItem } = useIndexedDB({ clientType: null });
@ -510,7 +511,7 @@ export const DeviceArea = (_props: DeviceAreaProps) => {
const filteredDevice = devices const filteredDevice = devices
.map((x, index) => { .map((x, index) => {
if (outputHostApi != "ALL" && x.hostAPI != outputHostApi) { if (monitorHostApi != "ALL" && x.hostAPI != monitorHostApi) {
return null; return null;
} }
return ( return (
@ -535,9 +536,9 @@ export const DeviceArea = (_props: DeviceAreaProps) => {
className="config-sub-area-control-field-auido-io-filter" className="config-sub-area-control-field-auido-io-filter"
name="kinds" name="kinds"
id="kinds" id="kinds"
value={outputHostApi} value={monitorHostApi}
onChange={(e) => { onChange={(e) => {
setOutputHostApi(e.target.value); setMonitorHostApi(e.target.value);
}} }}
> >
<option value="ALL" key="ALL"> <option value="ALL" key="ALL">
@ -558,7 +559,7 @@ export const DeviceArea = (_props: DeviceAreaProps) => {
</div> </div>
</div> </div>
); );
}, [outputHostApi, serverSetting.serverSetting, serverSetting.updateServerSettings, serverSetting.serverSetting.enableServerAudio]); }, [monitorHostApi, serverSetting.serverSetting, serverSetting.updateServerSettings, serverSetting.serverSetting.enableServerAudio]);
return ( return (
<div className="config-sub-area"> <div className="config-sub-area">

View File

@ -0,0 +1,37 @@
## Tutorial Monitor Output
v.1.5.3.7 から追加された server device mode における monitor output について説明します。
##
## v.1.5.3.6 以前の構成
出力先デバイスが一つしか設定できませんでした。Discord や Zoom など他のアプリケーションと連携するためには、一般的にこの出力を Voicemeeter などの仮想オーディオデバイスに設定する必要があります。このため、変換後の音声を確認するためには仮想オーディオデバイスを経由して行う必要があり、多くのオーバーヘッドがかかっていました(青線)。
![image](https://github.com/w-okada/voice-changer/assets/48346627/faba8fdf-cfa5-468f-a56b-3fa986fb45a1)
## v.1.5.3.7 以降の構成
v.1.5.3.7 では、VCClient の server device mode でもう一つ出力先デバイスを設定できるようになりました(赤線)。これにより、モニター用には Voicemeeter を経由せずに直接 wasapi デバイスや asio デバイスに出力できるようになり、遅延が少ないモニタリングが可能になります。
![image](https://github.com/w-okada/voice-changer/assets/48346627/1d5065eb-b042-4521-ade3-66828c87a712)
## 使い方
デバイス設定エリアで server device mode を選択してください。サンプリングレート(S.R.)、input, output, monitor を設定できるようになります。
![image](https://github.com/w-okada/voice-changer/assets/48346627/c15e6800-75ec-410b-87f2-c96d0c697c91)
## 注意事項
server device mode で使用する input, output, monitor のそれぞれのデバイスはサンプリングレートが一致している必要があります。一致していない場合は、コンソール上に詳細情報がでるのでそれぞれのデバイスが対応しているサンプリングレートを GUI から指定してください。
## Tips
### その1
お使いの環境により大きく変わると思いますが、開発者の環境では Input, Monitor を Wasapi デバイス、output を任意にすることで遅延をかなり少なく運用することができました。
### その 2
Wasapi のサンプリングレートはデバイス側で設定したものしか選択できません。この設定は Windows のサウンド設定から変更できます。(Win11)

View File

@ -254,7 +254,7 @@ onnxdirectML 版では GPU の ON/OFF を切り替えることができます。
録音した音声を再生するスピーカーを設定します。 録音した音声を再生するスピーカーを設定します。
#### input #### in
音声変換 AI に入力される音声を再生します。 音声変換 AI に入力される音声を再生します。