はじめに
MOSの自動算出にViSQOL(Virtual Speech Quality Objective Listene)というものがあるらしい。今回はこのViSQOLをWindows環境で動かしてみたのでその備忘録になります。
ViSQOLとは何
MOSを基準スコアとテストしたい音声を比較して算出してくれるプログラムです。
MOSは1から5までの範囲があり、最高評価が5、最低評価が1となります。このスコアによって基準の音声にどれだけ近いかを示してくれます。
環境
64bit windows10 バージョン21H1
ビルド
bazelとgitをインストールします。
bazelのインストール手順については以下を参考にしてください。バージョンは3.5.0でインストールしました。
gitのインストールは以下のリンクからインストールしてください。
インストールが完了したらbazelをC++でWindows様に構築します。
構築にはMicrosoft Build Toolsが必要になります。もし、インストールしていない場合は以下のリンクからインストールしてください。自分はBuild Tools 2015をインストールしました。
インストールが完了したら環境変数を追加します。
システム環境変数を開いて新規をクリックします。
これでbazelの構築は完了です。
コマンドプロンプトを立ち上げてgithubからViSQOLをダウンロードしましょう。
自分はC:\Users\(ユーザーネーム)
にダウンロードしました。
ダウンロードが完了したらViSQOLのファイルまでcdコマンドで移動しましょう。
移動したら以下のコマンドを入力しましょう。
bazel build :visqol -c opt
処理が終了したら自動テストを行います。githubでは
bazel test all_unit_tests
で自動テストが行えると記載されていますがWindows環境だと「ファイルが見つかりません」エラーで失敗します。
そのため、以下のコマンドで自動テストを行いましょう。
bazel test all_unit_tests --enable_runfiles
無事終了したらVisqolの構築は終了になります。
実行
コマンドラインでの実行方法を記載します。実行方法についてはGithubと同様のものを記載するため詳しくみたい方はそちらまで。
ViSQOLを実行するためにはオーディオモードとスピーチモードがあります。入力する音声がオーディオの場合、サンプリング周波数を48kHzに、スピーチの場合、サンプリング周波数を16kHzにしましょう。
オーディオモードのコマンド
2つのファイルを比較し、それらの類似性をコンソールに出力するコマンド。
bazel-bin\visqol.exe --reference_file "基準.wav" --degraded_file "テスト.wav" --verbose
スピーチモードのコマンド
2つのファイルを比較し、それらの類似性をコンソールに出力するコマンド。
bazel-bin\visqol.exe --reference_file "基準.wav" --degraded_file "テスト.wav" --use_speech_mode --use_unscaled_speech_mos_mapping --verbose
○追記
自分の環境では
操作可能なプログラムまたはバッチ ファイルとして認識されていません。```
と表示される。そのため、コマンドの
```bazel-bin\visqol.exe```
の部分を
```bazel-out\x64_windows-opt\bin\visqol.exe```
と変更してあげると上手く行きました。
## 終わりに
初心者であるため間違いが多少あるかもしれません。もし、間違えているところがありましたらこっそり教えてください。
この記事が誰かのお役に立てれば幸いです。