QTの音声データをオリジナルwavと比較チェックする専用アプリ「QTWAVChecker(仮称)」の開発
こんにちは、レスパスビジョンのサワツです。
そろそろアルファ版ができそうなので、今日は開発中の
「QTWAVChecker(仮)」について、紹介したいと思います。
WavCheckerとして社内向けにリリースしました。
詳細はこちらの記事をご覧ください。
「QTWAVChecker」は何ができるの?
以下のことができます。
指定のQuickTime(.mov)に付いている音データ(2ch stereoと5.1ch)と、指定のwavデータが「完全に一致しているか」をチェックします
wav同士の比較(同じ音データかどうか?)もできます
wavの差分比較モードでは「どこが違うか」を区間表示します
「音データの完全一致」は波形で見ているわけではなく、wavデータのデータブロックを直接読み込んでxxhashによるハッシュ値を求めているため、極めて高速に動作します。
2時間尺の2chステレオQT(PCM24bit/48khz)のチェックで1分程度)
なんで作ったの?なにが嬉しいの?
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 サワツ