VOICEVOXをYMM4で使ってみた(その1)

今まではゆっくりボイスを使っていたのですが、VOICEVOXという、無料で商用利用も可能な音声合ソフトが公開されたため使ってみました!

VOICEBOXは以下で公開されています!
https://voicevox.hiroshiba.jp/

CPUモード、GPUモード

エンジンの起動モードにはCPUモードとGPUモードがあり、GPUモードの方がかなり速いです。

GPUモードの問題点

GPUモードでエンジンを使用していると音声合成できなくなります。
例えば、私の環境ではGPUメモリーが4GBですが、YMM4でセリフが100個くらいあるプロジェクトを開くと、50個位の音声合成したところあたりから以降の音声合成がすべて失敗します。
音声合成が出来るようにするにはVOICEVOXを再起動する必要があります。
ただし、YMM4のプロジェクトを閉じて開きなおすと、再度最初から音声合成するため、また50個目くらいから後すべての音声合成失敗するので解決になりません。

まずは構造を調べてみた

構造は以下の通りでした。

1.VOICEVOX単体で使用する場合
普通に使う場合ですね。画面に入力した文字列はエンジンに対して色々なHTTPリクエストを発行して、最終的に音声ファイルを受け取っていました。

2.YMM4で使った場合
YMM4の画面からVOICEVOXのエンジンに対してHTTPリクエストを発行して音声ファイルを受け取っていました。

エラー時に自動復旧できる構造とは?

以下の4.の構造にするとエラー時の自動復旧が実現できそうだと思いました。

3.YMM4単体で起動する場合(その2)は、実はVOICEVOX.exeは起動しないでもrun.exeを起動すればエンジンは起動できます。
GPUモードにする場合は–use_gpuを指定します。
run.exeのショートカットを作成して、リンク先を
“C:\インストール先\VOICEVOX 0.3.1\VOICEVOX\run.exe” –use_gpu
にしてそれを起動しても良いでしょう。

4.YMM4で使った場合(wrapperを挿入)
このwrapperを挿入することで、すべてのリクエストとレスポンスを監視できるようになります。

wrapperは具体的に何をするのか?


wrapperに最低限必要な機能は以下の通りです。

1.エンジンへのリクエストを中継する
2.エンジンからのレスポンスを中継する

つぎに、wrapperでエンジンの異常に対応するために必要な機能は以下の通りです。

1.エンジンから500エラーが返ってきたら、エンジンを再起動して、再度リクエストを発行する
2.エンジン再起動からリクエストを受け付けられるようになるまでは時間がかかるのでリトライ処理を入れる(1秒間隔で20回など)

基本的に以上の機能があればVOICEVOXエンジン(GPUモード)でエラーが発生してもYMM4は少し待たされるだけで、あたかもすべてのリクエストが成功したと錯覚してくれます。

最後におまけの機能を追加します

1.初回のリクエストが接続失敗した場合に限り、エンジンを起動する。

この機能を入れることで、YMM4がVOICEVOXを自動起動してくれていたことと同じことができます。
YMM4がVOICEVOX.exeを起動しないように、YMM4のVOICEVOX自動起動設定は空欄にします。(VOICEVOXのUIが起動するとYMM4の画面の上に乗っかって邪魔なので)

具体的なwrapperの作り方はその2につづく・・・

RS3M2020用バネ鳴き軽減ワッシャー

smartshipさんからRS3M2020用のバネ鳴き軽減ワッシャーをご提供いただきました!

MoYuのRS3M2020は値段も安く、初期状態で何も調整しなくてもかなり回しやすい、コストパフォーの良いキューブです。しかし、バネがチリチリ鳴くところに少しチープ感があります。

そもそもバネ鳴きとは、なぜ発生するのか?

ワッシャーなしの図

1)バネはセンターピースの床とバネの頭に挟まっていてセンターピースがコアから離れるほど強い反発を生じる
2)バネの反発力があるため、バネはバネの頭にも、センターピースの床とも強く摩擦しているのでバネが滑らないでねじられると、バネの直径が大きくなったり小さくなったりするようになる
3)ある程度バネの変形が進むとバネに蓄えられたねじる力の方が、摩擦に耐えられる力より大きくなり最後はバネが元の形に戻る
4)そのときに、バネの先端(端のとがっているところ)がネジの頭や、センターピースの床をひっかくことになり、引っかき音が発生します。またバネ自体が元の形に一気に戻るため、その際にも音が発生します

以上がバネ鳴きが発生するメカニズムです。

それでは、それを抑えるためにはどうするか?

方法1)潤滑剤をバネ付近にさすことでバネを滑らせ、回転によってバネがよじれて直径が大きくなったり小さくなったりしないようにする
方法2)バネの先端(端のとがっているところ)が滑るような材質のワッシャーを追加するか、元々ついているワッシャーをそのようなワッシャーと交換する。
ワッシャーのバネと反対側の面はネジの頭の裏面かセンターピースの床面と摩擦するが、その面との摩擦係数も小さくなるので、バネがよじれるのを防ぐことができます。
結果的によじれから一気に解放される瞬間がこないためバネは鳴かなくなります。

ワッシャーありの図

ということで、今回の「バネ鳴き軽減ワッシャー」は後者の「方法2」のために、ネジの頭とバネの間にはさむための非金属のワッシャーです。

バネの下側(センターピースの床側)には金属製のワッシャーが最初からついていますのでそこではありません。(そもそもそこにつけるにはワッシャーの内径が足りないため、今回のワッシャーでは無理です

詳細はレビュー動画を作成しましたのでご覧ください!

RS3M2020用追加マグネット

smartshipさんからRS3M2020用の追加マグネットをご提供いただきました!

MoYuのRS3M2020は値段も安く、初期状態で何も調整しなくてもかなり回しやすい、コストパフォーの良いキューブです。しかし、少し磁力が弱いと感じることがあります。

磁力を増すために、追加のマグネットをつけると良いのですが、私が持っていた Φ4mm × 1.5mmのマグネットは、追加でつけたら少し磁力が強すぎる感じがしました。

今回smartshipさんからΦ3mm × 1.5mmΦ3mm × 2mmのマグネットを提供して頂いきましたので両方を試してみました!

エッジの分解はステッカーレスの場合は引っ張るだけで簡単に外れましたが、ブラックモデルの方はかなり固く、スクレーパーのようなものがないと辛かったです。

追加マグネット装着後の使用感としてはΦ3mm × 2mmのマグネットを追加すると、磁力がいい感じに強まり、しかもΦ4mm × 1.5mmのマグネットを追加したときのような磁力が強すぎるという感じもしませんでした。
Φ3mm × 1.5mmのマグネットの方は追加で付けも、あまり磁力が強まったという実感はありませんでした。

ということでΦ3mm × 2mmのマグネットは試してみる価値はあると思います!
あとはお値段がいくらになるかが楽しみですね!