見出し画像

QTの音声データをオリジナルwavと比較チェックする専用アプリ「QTWAVChecker(仮称)」の開発

こんにちは、レスパスビジョンのサワツです。

そろそろアルファ版ができそうなので、今日は開発中の
「QTWAVChecker(仮)」について、紹介したいと思います。

WavCheckerとして社内向けにリリースしました。
詳細はこちらの記事をご覧ください。

QTWavCheckerメイン画面

「QTWAVChecker」は何ができるの?

以下のことができます。

  • 指定のQuickTime(.mov)に付いている音データ(2ch stereoと5.1ch)と、指定のwavデータが「完全に一致しているか」をチェックします

  • wav同士の比較(同じ音データかどうか?)もできます

  • wavの差分比較モードでは「どこが違うか」を区間表示します


「音データの完全一致」は波形で見ているわけではなく、wavデータのデータブロックを直接読み込んでxxhashによるハッシュ値を求めているため、極めて高速に動作します。
2時間尺の2chステレオQT(PCM24bit/48khz)のチェックで1分程度)

QTWAVChecker、チェックOK画面

なんで作ったの?なにが嬉しいの?


MAでは音データが正しいことに責任を持つ立場ですが、
作業中は色々な変更が付きものです。

・頻繁な音の差し替え
 (どこが変わってるのか、聞いてもよくわからないことも・・・


・オンライン作業での音データ差し替え後の音チェック
 (何も変わってないはずだけど音は念のため再チェック)

・改訂作業後の音チェック
(wav貼り直しただけなので、変わってるはずはないけど再チェック)

従来、これらのチェック作業はMA担当者の耳や、専用ソフトで波形に逆の位相を当てて、ゼロになるかチェックする「波形チェック」で品質を保証してきました。
QTWAVCheckerはこれらの確認作業を自動化し、チェック作業の負担を軽減します。

どういう仕組みで動いているの?(技術要素)

  • ffmpeg

みんな大好きffmpegです。
wavを分離するコマンドをPython内から使っています。

  • Python3.10

  • waveモジュール(一部改造)

  • xxhashモジュール

python標準のwaveライブラリは、protoolsのwav読むと止まっちゃう問題があるので、wavモジュール本体のコードを軽く弄ったりしています。

wavのRIFF規格はzip並の闇鍋の雰囲気があるため、社外に迂闊に出すわけにはいきません。(製品として品質保証することができそうにない)
完成の暁には中身はOSSとしてGitHubに公開しようかなあと考えています。

wavヘッダの技術情報参考URL:
JPPA-1-2018 BWF-J オーディオファイルフォーマット 第 3.1 版

https://www.jppanet.or.jp/jppawp/wp-content/uploads/2022/09/jppa-1-2018_bwf-j_audio_file_format.pdf



written by サワツ