ディジタル音響信号処理入門 - Pythonによる自主演習 -

音響入門シリーズ B-4

ディジタル音響信号処理入門 - Pythonによる自主演習 -

Google Colaboratoryを用いて,音響信号処理を一通り行えるよう解説。

ジャンル
発行予定日
2022/09/上旬
判型
A5
ページ数
158ページ
ISBN
978-4-339-01310-8
ディジタル音響信号処理入門 - Pythonによる自主演習 -
近刊出来次第出荷

定価

2,530(本体2,300円+税)

カートに入れる

電子版を購入

購入案内

  • 内容紹介
  • まえがき
  • 目次
  • 著者紹介

信号処理を学んだことがない読者を対象に「音の信号処理は案外簡単」と実感してもらうことを目的に,Pythonの対話型プログラミング環境Google Colaboratoryを用いて,音響信号処理を一通り行えるよう解説。

☆発行前情報のため,一部変更となる場合がございます

本書は,これから音響信号処理のプログラミングに取り組もうと考えている方を対象に,教師代わりに学習をナビゲートすることを意図した演習書です。

想定読者は,音響学に関する研究室に配属された理工系学科の卒業研究生や修士1年生,そして音響関連のソフトウェア製品を開発する部署に新たに配属された社会人の方です。

多くの理工系学科では,基礎科目においてフーリエ級数展開,畳込み演算などを学ぶでしょう。しかし,プログラミングにまで踏み込むカリキュラムは多くないように思います。著者の所属学科でも同様で,卒業研究生の中には「音に興味があってこの研究室を選んだけれど,これまで信号処理はまったく学んだことがありません」という方がいます。本書は,まさにそのような方々に,「音の信号処理は案外簡単ですね」ということを実感していただくことを目的としています。そして読後には,自信をもってご自身の業務に臨んでいただければ幸いです。

さて,本来ならば講義科目で信号処理の原理を学び,その後でプログラミング演習を行うのが望ましいと思われます。一方,本書は「離散フーリエ変換(DFT)の原理は知らなくても,与えられた音データに対するDFTの結果であるスペクトルを正しく理解して,必要な処理を実施できればよい」というスタンスです。すなわち,ブラックボックス化できる部分はそのままにして,音響信号処理全体を一通り完遂する力を習得することを目指しています。

本書は,対話的なプログラミング環境を用いることで,あたかも生徒が教師と対面で会話しているノリで学習を進めることを特長とします。そのため,全体が「話し言葉に近い敬体」で書かれています。

また,本書では,そのノリを実現するために,プログラミング言語Pythonの対話的プログラミング環境であるGoogle Colaboratory(略称:Colab)を用います。Pythonは,汎用のプログラミング言語であり,コードがシンプルで扱いやすいように設計されているので,最近は人気の高い言語です。そして,Colabでは,テキストとプログラムコードを交互に配置することが可能なノートブックというインタフェースを利用するので,教師からの指導を受けて生徒がプログラムを実行するという疑似的な対面学習が可能です。本書のPythonコードは,サポートページからダウンロードできますので,ご自身でパラメータの値を変えて実行することをおすすめします。なお,サポートページのColabノートブックには,本書に掲載できなかった確認課題とその解答例や,やや高度な内容のコンテンツも示していますので,ぜひ一度サポートページをご覧ください。

プログラムを実行し,波形を目で見て・音として聞いてみると,「波形がこんなに違うのに,音色はほぼ同じ」ことや「波形の相違はわずかなのに,音色はかなり違う」ことを経験されるでしょう。これが聴覚の不思議なところであり,音響学については「百見は一聞にしかず」であることを実感されるでしょう。

なお,本書では,ディスプレイで出力を確認することを前提としていたので,図はカラーであることを想定していました。出版にあたりモノクロ図面としてありますことをご容赦ください。サポートページには,出力である音に加えて,図のカラー版も掲載しています。

読者の皆さまが,本書を通じてディジタル音響信号処理の歓びを実感していただければ幸いです。そして,本書ではブラックボックス化している原理的な部分まで,ご自身で興味をもって調べていただければ幸いです。

末筆ながら,本書の出版に関してご助力いただいた皆さまに感謝いたします。本シリーズ編集委員の鈴木陽一先生には,著者の研究室の卒業研究生用に開発した教材ノートブックを,本書として出版するようお声がけいただきました。同委員長の大川茂樹先生と同委員の羽田陽一先生には,原稿を通して読んでいただき,貴重なご意見をいただきました。コロナ社には,著者の遅筆をご寛容いただき,出版までご助力いただきました。また,塩澤光一朗様をはじめとする山梨大学の卒業研究生諸氏には,この教材を用いた学習の過程でさまざまなコメントをいただきました。重ねて感謝いたします。

2022年8月 コロナ禍の終息を祈りつつ
小澤賢司

☆発行前情報のため,一部変更となる場合がございます

1. 演習環境の立ち上げ
1.1 PythonとColab
 1.1.1 Pythonとは
 1.1.2 Colabとは
1.2 演習環境の準備
 1.2.1 Python入門とColabの応用
 1.2.2 本書のサポートページ
1.3 Colabでwavファイルを聞いてみる
2. 音に触れる
2.1 音を数式で表現する
 2.1.1 時間の関数としての音の数式表現
 2.1.2 振幅と位相を含んだ数式表現
2.2 正弦波を生成して聞いてみる
2.3 A-D変換について確認する
 2.3.1 標本化
 2.3.2 不適切な標本化
 2.3.3 量子化
 2.3.4 よろしくない量子化
 2.3.5 量子化誤差を聞いてみる
3. アナログ音の周波数分析
3.1 正弦波の重ね合わせによる周期波形の合成
 3.1.1 ウォーミングアップ:2成分複合音の合成
 3.1.2 3成分複合音の合成
 3.1.3 成分音の振幅と波形の関係
 3.1.4 成分音の位相と波形の関係
 3.1.5 三角関数の合成
3.2 フーリエ級数展開
 3.2.1 丸い波による角のある波の合成
 3.2.2 周期波形の分解
 3.2.3 分解された成分の位相と振幅を調べる
3.3 スペクトル
 3.3.1 フーリエ級数展開で得たスペクトルを描画する
 3.3.2 実フーリエ級数展開から複素フーリエ級数展開へ
 3.3.3 複素フーリエ級数展開で得たスペクトルを描画する
基本的な周期波形のスペクトル
4. ディジタル音の周波数分析
4.1 ディジタル信号のフーリエ変換
 4.1.1 DFTとFFT
 4.1.2 FFTスペクトルを読み解く(王道の解釈)
 4.1.3 FFTスペクトルを読み解く(曲がった解釈)
 4.1.4 スペクトルの振幅値に関する解釈
 4.1.5 ディジタル信号のスペクトル
4.2 窓関数
 4.2.1 方形波窓による切り出しが引き起こす問題
 4.2.2 窓関数を用いた波形の切り出し
 4.2.3 STFTとスペクトログラム
4.3 窓関数による波形の変化とスペクトルの変化
 4.3.1 切り出した波形の合成による元の波形の復元
 4.3.2 窓関数の掛け算によるスペクトルの変化
4.4 忘れてはいけない位相スペクトル
5. 音のフィルタリング
5.1 FIRフィルタによる雑音の除去
 5.1.1 インパルス応答の畳込み
 5.1.2 FIRフィルタを自作する(窓関数法)
 5.1.3 FIRフィルタの自動設計(窓関数法)
5.2 IIRフィルタによる雑音の除去
 5.2.1 IIRフィルタの自動設計
 5.2.2 IIRフィルタを利用した雑音除去
5.3 頭部伝達関数を用いた音像定位の制御
 5.3.1 頭部伝達関数とは
 5.3.2 頭部伝達関数を用いて音像を制御してみよう
5.4 FFTを利用した長い音のフィルタリング
6. さまざまな音響信号処理
6.1 ボイスチェンジャ
 6.1.1 まずボイスチェンジャしてみる
 6.1.2 スペクトルの変化を観察する
 6.1.3 スペクトルの変化を検討する
6.2 エフェクタ
 6.2.1 トレモロ
 6.2.2 ビブラート
6.3 マイクロホンアレイによるビームフォーミング
 6.3.1 遅延和法(DS法)の基礎
 6.3.2 遅延和法の実行
引用・参考文献
索引

本書は,元々は Google Colaboratory (Colab) のノートブック(Pythonコードと解説文が一緒になったもの)として開発した教材を,書籍として編集したものです。そこで,書籍を読むだけでなく,実際にColabノートブックを実行することとで信号処理を体験していただければ幸いです。

その雰囲気を味わっていただくために,「第2章(前半)」についてお試し版を作りました。


1.HTML版:実行後のイメージです(音を聞くこともできます)。
https://kenjiozawa.github.io/chap2_trial_ver.html

2.ノートブック版:Pythonプログラムを実行可能です。
https://drive.google.com/file/d/1AD-tAQB3m7Nk5K-kx_8bWYhxAs5Cbdu2/view?usp=sharing

リンクをクリックすると,「開くプログラムを選ぶ」といった問合せがなされます。「Colaboratory」を選択していただければ,ノートブックが開くでしょう。Pythonコードが書いてあるセルの左端にある実行ボタン(▶)を押して実行してください。

※URL変更やサイト閉鎖等で予告なくリンク切れすることがございます。ご了承ください(2022年8月9日)