voicevox_coreを利用したNode-REDのノードです。
文字列を受け取り、音声ファイルを出力します。
▼voicevox_coreはこちら
https://github.com/VOICEVOX/voicevox_core
▼VOICEVOXはこちら
https://voicevox.hiroshiba.jp/
[!CAUTION] 現状ではWindowsにしか対応していません。
またPythonの環境が必要で、仮想環境にパッケージがインストールされます。
- Windows 10
- Python 3.8.3
- Node.js v20.10.0
- npm 9.1.3
voicevox_coreは0.15.3がインストールされます。
examplesフォルダに入っています。
音声ファイルの保存先フォルダを指定する必要があります。
話者のIDはプルダウンで選択できます。
msg.voiceID、msg.voiceFolderに値を入れて、ノードに渡すこともできます。
この場合、msgの値が優先されます。
- .js: ノードの機能
- .html: エディタでの表示
- package.json: インストール時に使用、ノードのパスを指定
.jsの中のchild_processで、Pythonのプログラムを実行しています。
ダウンローダのURLやバージョンを変更したいときは、このリポジトリをダウンロードしてください。
Node-REDのノードとして追加できます。
▼インストールする場合
npm install <フォルダのパス>
▼アンインストールする場合
npm uninstall <パッケージ名>
Pythonで実行するための環境構築を行うことができます。
pyenvフォルダがPythonの仮想環境になっています。activate後、voicevox関連のファイルを実行できます。
- setup.py: 環境構築
- downloader.py: ダウンローダの実行
- voicevox.py: 音声ファイルを出力(第一引数:文字列、第二引数:話者のID、第三引数:音声ファイルの保存先)
- id_list.py: 話者のリストを表示
リポジトリをダウンロード後、このディレクトリでnpm install
を実行すると、setup.pyが実行されます。
- Pythonプログラム実行中の表示
- 音声ファイルを出力するのに少し時間がかかります。
- 出力中にノードのステータスを表示して、分かりやすくしようと思っています。
- 何を出力するか
- read fileノードで音声ファイルを開いてバイナリバッファで送ることもできますが、このノードでバイナリバッファを送るほうが使いやすいかも?
- バイナリバッファで送るとファイルに保存しなくてもよくなりますが、出力に時間がかかります。
- 選択できるようにしようかなと思っています。
▼Node-RED User Group Japan 「ノードの開発」
https://nodered.jp/docs/creating-nodes/
▼PythonでVOICEVOX COREを使ってみる(音声合成)
https://404background.com/program/voicevox-core/
▼Node-REDとVOICEVOX COREで音声合成(Python)
https://404background.com/program/node-red-voicevox/
▼python-venvノードと同じ仕組みで、インストール時にPythonの仮想環境を構築するようにしました。
https://404background.com/program/node-create-python-venv/