社会人研究者が色々頑張るブログ

pythonで画像処理やパターン認識をやっていきます

pythonで音声信号処理のことはじめ

はじめに

今までは画像処理や画像認識ばっかりやってきたのですが、ふと音声も画像と同じパターン認識技術の一つだなぁと思い、ここは一つ音声も触れるようになりたいなと思いました。
一昔前は音声信号処理を頑張るにはC言語の開発環境とライブラリ群をインストールするのが大変だと聞いていたのですが、昨今ではpython pip一発で環境整備ができるようになったと聞きます。
本当にpython様様ですね。
今回からpythonで音声信号処理をやってみたいと思います。

音声信号処理

Wikipediaを引用すると音声信号処理とは"音または音を表す信号を処理すること"を指すようです。
音響信号処理 - Wikipedia

パッと思いつく応用例としては、音声通話(電話, VoIP)、音声圧縮(MP3)、音声認識(Siri, 書き起こし)、音響技術(ハイレゾ, ノイズキャンセリング, ノイズ補正)等々でしょうか。
よくよく思い返すと非常に広い分野で社会に根付いた技術であるなぁと思いました。

とても広い応用先ですが、構成技術も非常に多く、体系的にイメージすることが難しそうですね。
以下に、今僕がイメージしている技術体系を図にしてみました。

f:id:nsr_9:20210919140415p:plain

音声技術についてはあまり詳しくないのですが、この中でも特に信号処理の部分がホットトピックスなんでしょうかね?
具体的にお勉強してみたい技術としては、ノイズキャンセリング、指向性マイク(ある方向やある種類の音を聞き取りやすくするマイク)、望遠マイク(遠くの音を聞き取る)、音声変換(いつも聞いてる楽曲を違うテイストに変換する)などです。

まだ全然調査できていないので間違っているかもしれませんが、多分このピンクの丸の部分が必要な技術になると思います。

f:id:nsr_9:20210919141107p:plain

準備したもの

暗中模索状態ですが、何はともあれ録音装置、音声処理用の演算装置、音声再生装置が必要である事は間違いないと思います。
音声処理用の演算装置は、汎用PC(Ubuntu)+Pythonで賄うとして、ポータビリティ性の高い録音装置、再生装置が必要です。
色々調べた結果、TASCAMのDR-05と言うリニアPCMレコーダーを購入しました。
DR-05 | 製品トップ | TASCAM (日本)

この装置は名前の通り乾電池で動く録音機なのですが、これが中々面白い機能が沢山ついています。

まず外観ですが、シンプルでとてもかっこいいです。
f:id:nsr_9:20210919144850p:plain
f:id:nsr_9:20210919145037p:plain

録音機単体で録音した音声の再生や簡単な音響処理(エコーとか多重録音とか)ができます。
裏面にはマウント用のネジ(カメラマウントと互換)と電池ボックスが見えます。

f:id:nsr_9:20210919145254p:plain
こんな感じの三脚を用意すれば簡単に固定することができます。
f:id:nsr_9:20210919145427j:plain
f:id:nsr_9:20210919145436j:plain

電池ボックスには単3電池が2本入ります。
f:id:nsr_9:20210919145643j:plain
充電式も好きですが、 出先で電池切れになった時にコンビニに駆け込めばすぐに動かすことができるので、カートリッジ式もとても便利ですね。

側面にはマイクロSDカードスロットとφ3.5mmのイヤフォンジャックがついています。
f:id:nsr_9:20210919145930j:plain
f:id:nsr_9:20210919145937j:plain

イヤフォンジャックをつけなくても録音やスピーカー再生する事ができます。

最後にフロント部分にはL/Rのステレオマイクとステレオの外部マイク用のジャックがついています。 f:id:nsr_9:20210919150048j:plain

簡単に録音した音声を聞きましたが、非常にクリアに聞こえてとてもビックリしました。
普段、Web会議やボイスチャットでは安物のマイクを使ってたのですが、高性能なモノはここまで凄いのか!!と童心に帰って色々な音声を録音しては再生するという遊びをしてしまいました。

また、L/Rのステレオマイク構成なので、昨今話題の立体音響録音などができます。
こんな感じにレコーダーの周辺をペンでコンコン叩いてみました。
f:id:nsr_9:20210919153638p:plain

いい感じに立体音響で録音することができました。

終わりに

今回は、音声信号処理を勉強するためにレコーダーを購入し、色々遊んでみました。
次回からは録音したwavファイルをpythonで扱ってみたいと思います。