初心者向けにわかりやすく解説するNode-REDの【環境変数】使用法

前回のエントリーで環境変数の学び直しをしたので、今回はNode-REDでの環境変数の使い方の復習をします。復習と言ってもほぼ使ったことがなかったので初めて使うに近いです。今回の内容は以下の内容を踏襲しています。サブフローなどに関してはまだ手に負えないので、記載はしていません。

nodered.jp

公開されているこちらの情報ですが、非常にいい情報が掲載されているのですが、初心者には結構わかりにくいような😢その部分も含めてまとめて行きます。

今回、RaspberryPi OS環境に、以下のように起動したNode-REDをインストールして使っています。 環境変数の内容については前回のエントリのLinux系の環境変数の部分を参考にお願いします。

参考

uepon.hatenadiary.com

また、今回参照する環境変数変数名:ENV_VARIABLE値:value123とします。

CLIによる設定と表示

# 設定(~/.bashrcなどの編集)
$ export ENV_VARIABLE=value123
# 表示(grep使用)
$ printenv | grep ENV_VARIABLE
ENV_VARIABLE=value123
続きを読む

復習:各OSの環境変数の使い方を学びなおす

環境変数とシェル変数の混同があったので少し修正いたしました(2024.02.05)

久々にNode-REDを復習してみようと考えて、Node-RED日本ユーザ会のホームページを眺めていました。

nodered.jp

そういえば、これまでに開発時に環境変数って使ったことあまりなかったなあと思い、どうやって使うんだっけ?という疑問がでてきたので、ちょっと調べてみたら、数種類の方法があったので学びなおすことにしました。

該当のページは以下となります。

nodered.jp

環境変数の重要性

ご存じの方はこんな内容は読まないかなと思いますが…

環境変数(かんきょうへんすう、英語: environment variable)はオペレーティングシステム (OS) が提供するデータ共有機能の一つ。OS上で動作するタスク(プロセス)がデータを共有するための仕組みである。特にタスクに対して外部からデータを与え、タスクの挙動・設定を変更するために用いる。(Wikipediaより)

ja.wikipedia.org

OSが提供するデータ共有機能で、コンピュータの黎明期からかなり使われている機能です。一般的な例としてはPATHなどを通すというのもPATHという環境変数にプログラムを実行するパスを事前登録するということで行っています。また最近はREST APIなどの認証データの保存などにも使用されています。

環境変数にしたほうが良い情報

環境変数を利用する主な利点は、セキュリティの向上と設定の柔軟性です。重要なデータをソースコードから分離することで、誤ってリポジトリにコミットしたり、不必要に広範囲に晒したりするリスクを減らすことができます。また、環境変数を通じてアプリケーションの設定を外部から調整できるため、異なる環境や条件下での運用が容易になります。

すべてではありませんが、以下のような情報は環境変数にしたほうがよさそうです。

  1. 機密情報:パスワード、APIキー、秘密鍵などの機密性の高い情報。これらをソースコードに直接記述すると、セキュリティリスクが高まります。
  2. 設定情報:データベースの接続設定、外部サービスのエンドポイント、アプリケーションのポート番号など、環境に依存する設定情報。
  3. 環境依存の変数: 開発、テスト、本番など異なる環境で異なる値を使用する変数:バッグモードの有効化、ログの詳細レベル、リソースの割り当て量など。
  4. アプリケーションの動作をカスタマイズするためのフラグ:特定の機能のオン/オフや、機能の挙動を変更するためのフラグ。
  5. 外部リソースへのパス:ファイルシステムのパスやURLなど、外部リソースへの参照。

自分は結構コードにそのまま記載していることがほとんどでした。ちょっと反省です。

ということで、環境変数の設定に関して各処理系でまとめ、次回にNode-REDでの使用方法をまとめます。

20240205追記

macOS、Linux (bash環境)に関してですが、下記表現の中で、一時的な環境変数と、シェル変数という言葉の混同がある部分があるようなので一部文面の修正を行っています。

シェル変数とは

現在実行しているシェルの中だけで有効な変数。

環境変数とは

新たなシェルを起動したり、コマンドを実行した場合にも継承される変数となります。 ただ、現在実行しているシェル内で環境変数の設定をした場合には(exportコマンドを使用した場合)環境変数になりますが、 そのシェル内でのみ使用できる環境変数となります。

また、シェル変数は環境変数へと昇格(よい表現かわからないですが)することもできます。exportコマンド以降にシェル変数の定義ができるためです。

なかなか、分かりにくい表現になっていますが、一時的な環境変数というのは使用できるけれども、運用上はあんまり使用しないかなと考えています。

続きを読む

VOICEVOX COREをRaspberryPiにインストールしてCLIで便利に音声合成を行おう

前回のエントリではVOICEVOXをPCにインストールされたUbuntuへインストールしたという内容でしたが、今回はRaspberryPiVOICEVOXをインストールするという内容です。ただ、RaspberryPiの運用ではモニタのないヘッドレス環境での使用の可能性もあるため、この設定ではVOICEVOXを構成する要素の1つであるVOICEVOX COREを導入し、CLIでの運用を行ってみたいと思います。

ネットで検索してもうまくいかないという話はあるのですが、成功例はなかなかないようです。自分も数日悩みましたがようやく解決できました。

【参考】

uepon.hatenadiary.com

VOICEVOXの構成要素

VOICEVOXは3つのモジュール「エディター」、「エンジン」、「コア」で構成されています。VOICEVOXソフトウェアはこの3つから構成され、エディターエンジンの機能を参照し、エンジンコアの機能を参照しています。

参考github.com

エディター

GUI を表示するためのモジュールで、アプリケーションの形態をとります。リポジトリは以下となります。

github.com

エンジン

テキスト音声合成 API を公開するためのモジュールで、Web サーバーの形態をとります。リポジトリは以下となります。

github.com

コア

音声合成に必要な計算を実行するためのモジュールで、動的ライブラリの形態をとります。コマンドラインでの実行も可能)リポジトリは以下となります。

github.com

また、これらのモジュールは単独で使用できるようになっています。例えば、コアだけでコマンドラインからの使用、エンジンだけでWebAPIでの使用ができ、Web経由でリクエストを送信すれば音声合成された結果を得ることができます。このような形で導入が一部分であっても、サービスの使用ができるようになっています。

今回はコアRaspberryPiに導入し、コマンドライン上から実行を行えるようにしてみたいと思います。

続きを読む

気になる音声合成ソフト「VOICEVOX」をUbuntuで試してみた!

前から気になっていたVOICEVOXUbuntuに入れてみました。WindowsMacでは動くのは当然だよね~ってところで、Linuxにも正式に対応しているというのが割とすごいなという印象です。以前から気にはなっていたのですが、なかなかさわる機会がなかったので、今回少し時間ができたのでインストールしてみようと思います。

VOICEVOXの説明に関しては以下の通り

ja.wikipedia.org

VOICEVOXは、ヒホが開発した音声合成ソフトウェアである。 VOICEVOX で生成した音声合成を使用して自分の作品を公開する場合、クレジットを表記し利用規約に同意すれば、商用、非商用問わず無料で利用できる。(Wikipediaより)

商用利用もできるため、ゆっくりボイスとともにYoutubeで使用頻度高めの音声合成アプリになっているようです。

続きを読む

もう1本マイクがほしい!便利なUSBマイクで機材を増やさずに音声出力を実現

久々にドン・キホーテにいったらSWITCHやPS4向けのマイクが半額になっているのを見つけました。

www.a-answer.co.jp

USBドングルでPCに接続し、ケーブルレスでマイクをつける事ができます。特にペアリングなどは不要です。1500円はまあ安いかなと思って購入しました。ただし、このマイクでは機能的に2本使用することはできません。購入される場合にはご注意ください。

何に使用するか?

リアルなイベントを開催すると、ちょっとだけマイクが欲しくなることがあります。会場によってはマイクやPA卓の設備があるのですが、もう一本ほしいというときに別途オーディオインターフェースがなかったりピン形状が異なったりと単純にはいきません。実は映像より音声周りのほうがこういう状況になりがちです。

そこで先程購入したハンドマイクを使用して、イベントに使用しようと考えての購入となります。 マイクの音声はHDMI接続したプロジェクターや別途スピーカーなどを経由して音声が出力できると考えたのです。

マイクはUSB接続で音声をVHF帯の無線で接続を行っているようで、マイクのテストは問題なくレベルが出ていました。デバイスとしてはバッチリです。ゲーム機用のデバイスですが、USB接続であればこのあたりの心配しなくても良いのは嬉しい限りです。


その後、現場リハーサルで実験をしてみたのですが、マイク-スピーカーのスルー出力に関しては、どういう設定をすれば良いかわかりません。PC1台でなんとかならないと、機材が多くなるのでできれば避けたいところです。

ようやくその設定を見つけることができたので、設定方法を書き残します。

続きを読む
/* -----codeの行番号----- */