Upgrade to Pro — share decks privately, control downloads, hide ads and more …

32bitフロート録音で音割れしない理由 (20221111_32float)

Koki Senda
November 11, 2022

32bitフロート録音で音割れしない理由 (20221111_32float)

2022年11月11日にVoicy社内のエンジニア発表会で話した内容です。

前編はこちら
https://speakerdeck.com/thousanda/20221007-sampling-and-quantization

Koki Senda

November 11, 2022
Tweet

More Decks by Koki Senda

Other Decks in Technology

Transcript

  1. ©2022 Voicy, Inc. はじめに
 • 32bitフロートとは
 ◦ 量子化 (Quantization) の方法

    
 ◦ 音声データを32bit浮動小数点表現で保存する 
 • なぜ音割れしづらいのか
 ◦ 音割れの原因はマイクの ゲインの上げすぎ
 ◦ 32bitフロートはゲインを小さくしても十分な分解能があるため 
 32bitフロート録音は音割れしづらいらしい 
 → 一般の方にこれを正しく説明するのはむずかしい... 
 エンジニアはデータ型の知識があるので説明が簡単!
  2. ©2022 Voicy, Inc. なぜこの話をするのか 
 
 
 
 
 


    
 https://zoomcorp.com/ja/jp/field-recorders/field-recorders/f3/ 
 ZOOM『F3』がすごいと話題に 

  3. ©2022 Voicy, Inc. じゃあゲインを下げればいいじゃん? 
 • 
 ゲインを下げすぎると量子化誤差が大きくなる 
 ゲイン高め


    ゲイン低め
 11段階で表現できる (-5 〜 5)
 5段階で表現することになる (-2 〜2)

  4. ©2022 Voicy, Inc. • 音割れしやすい例
 ◦ 2人で話していて、片方の人だけ声が大きい 
 ◦ 普通に話すときは声が小さいが、笑うときだけ声が大きい

    
 → 音量の差がある
 • 適切なゲイン
 ◦ できるだけ大きく
 ◦ でも音割れしない範囲で 
 適切なゲイン 
 ゲイン設定は難しい 

  5. ©2022 Voicy, Inc. 量子化の方法 
 32bitフロート録音 
 • 32bitフロート
 ◦

    振幅の値を32bit浮動小数点表現で保存する ← 一般向けにはこれだと説明不足なので難しい 
 
 
 • 参考
 ◦ CD音源
 ▪ サンプリング周波数: 44.1 kHz 
 ▪ 量子化方法: 16 bit リニアPCM (← 16bitのint) 

  6. ©2022 Voicy, Inc. 量子化が細かいのでゲインを下げても大丈夫! 
 32bitフロート録音のメリット 
 • 16bit
 ◦

    2^16 = 65,536 段階の情報量 
 • 32 bit
 ◦ 2 ^ 32 = 4,294,967,296 段階の情報量 

  7. ©2022 Voicy, Inc. ダイナミックレンジが広いので音量の差が大きくても大丈夫! 
 32bitフロート録音のメリット 
 • 16bit integer


    ◦ min: -32768 〜 Max: 32767 
 • 32 bit float
 ◦ min: -3.40282e+38 〜 Max: 3.40282e+38 
 ◦ (絶対値: 1.17549e-38 〜 3.40282e+38) 

  8. ©2022 Voicy, Inc. 32bitフロート録音のメリット 
 • Integerは最小値から最大値を均等に刻む
 ◦ ゲインを下げると表現力 (=

    実質的bit数) がリニアに落ちる 
 • 浮動小数点は0付近を細かく表現できる
 ◦ ゲインを下げても表現力が減りづらい 
 浮動小数点は0付近の解像度が高い 

  9. ©2022 Voicy, Inc. むすび
 • 32bitフロートとは
 ◦ 量子化 (Quantization) の方法

    
 ◦ 音声データを32bit浮動小数点表現で保存する 
 • なぜ音割れしづらいのか
 ◦ 音割れの原因はマイクの ゲインの上げすぎ
 ◦ 32bitフロートはゲインを小さくしても十分な分解能があるため 
 32bitフロート録音は音割れしづらいらしい