Novemade
すべての記事

Pivumo が Opus ではなく AAC を出荷する理由

ブリーフは Opus を求めた。それを出荷すれば、すべての iPhone でアプリは無音になっていた。

技術ノート · · 読了 3 分

Pivumo はまだ字を読めない子ども向けの早期学習アプリであり、そのため声はひとつの機能ではなくインターフェースそのものになります。すべての指示、数、色、ごほうびが、二十九言語で、二人のキャラクターによって話されます。音声は素材フォルダではありません。製品の表面です。

製作ブリーフは Opus を指定していました。一見もっともな選択です。音声のビットレートでは AAC よりバイトあたりの品質が良く、二十九のロケールにわたって何千もの音声行を出荷するアプリにとって、二十から三十パーセント小さいというのは実際に意味のある数字です。

問題

iOS では Flutter の音声は AVPlayer を通ります。AVPlayer には Opus も OGG のデコーダーもありません。Opus のみのビルドは iPhone と iPad で品質が落ちるのではなく、無音です。声がインターフェースである製品にとって、無音は重大度の等級がつくバグではありません。アプリが存在しないということです。

これは統合まで見えず、しかもちょうど最悪の瞬間に破滅的になる種類の問題です。多言語パッケージ全体を生成し、QA で聴き、ライセンスを整理し終えたあとに、です。

何を出荷したか

既定のセットとして .m4a の AAC-LC、48 kHz。声はモノラルです。話し声はステレオから何も得られず、サイズが倍になるからです。音楽はステレオです。両プラットフォームでネイティブに再生されます。Opus のセットも引き続き製作され、Android 専用の選択肢として、同一のファイル名、キー、ディレクトリ構成で併せて出荷されます。つまりそれを選ぶことはパスの変更であり、それ以上のものではありません。

一般化した形

形式の決定は、それを生み出すパイプラインではなく、それをデコードしなければならないプラットフォームに属します。それに気づくのに最も安い瞬間は二十九のロケールを生成する前であり、安くするやり方は、仕様を読んで実行環境がそれを守ると仮定することではなく、早い段階で本物の対象端末でファイルを一つ再生することです。

両方のエンコードを同一の構成の裏に保つことはほとんど費用がかからず、不可逆な決定を可逆なものに変えました。この取引はたいてい受ける価値があります。

対象プロダクト

Pivumo

2歳から6歳向けの早期学習アクティビティ1002種、29言語で音声収録。