Smile Engineering Blog

ジェイエスピーからTipsや技術特集、プロジェクト物語を発信します

音響処理

デジタルオーディオのボリュームをやってみる

DSP(Digital Signal Processor)のファームウェアを実装する時、いつも悩むことは、自分が実装した信号処理のプログラムが正しいか(?)、どのように検証するかで、 WindowsやLinuxでその期待の動作を十分に検証し(期待値を作り)、組み込んだファームウェア…

MIPSとMCPS

ソフトウェアの要件として、性能をMCPSでオーダーされたケースがありました。 前記事の「MIPSとMCPS(?)、100MIPSは100MHzで動くか?」では、 ソフトウェアのベンチマークとして、MIPS【Million Instructions Per Second 】と、MCPS【Million Cycles Per Seco…

WAVフォーマットとヘッダ

「PCMにWAVヘッダを付ける」では、WAVヘッダを紹介しました。 WAVフォーマット(*.wav)は、 ファイルコンテナの一種で音源データを格納するファイル形式ですが、手っ取り早く リニアPCMにWAVヘッダを付けるだけでもWAVファイルとして扱うことが出来ます。 W…

Audacityのバージョンアップ

Audacity Ver 3.0.0がリリースされていました。 リリース情報を見ると(こちら)、 Ver 2.4.2からのメジャーバージョンアップです(2021/3/17)。 インストールされているバージョンをチェック アップデートのチェック Windows 10でアップデート(新規インス…

FIRフィルタを固定小数点化してみる

「FIRのフレーム処理」 では、FIRフィルタのフレーム化(実装)を紹介しましたが、今回は組み込み向けの話しをしたいと思います。 信号処理の組み込みと言えば、まずはDSP*1を思いつきますが、 RISC CPUによるSIMD*2やVLIW*3のように、並列処理により信号処…

FIRフィルタのフレーム処理

信号処理ではそのアルゴリズムによってフレーム単位で処理している場合が多いです。 フーリエ変換を行う場合は、そのサイズ(点数)でフレーム化されたりします。 このようなケースを考えたとき、フィルタもそのフレームサイズに適した形が都合が良く、高速…

Audacity『ノイズ除去』の周波数特性

「Audacityのノイズ除去を検証してみる」では、AudacityのNoise Reductionが周波数を分析しているのならば、特定の周波数をノイズとした時、その周波数が消えるか?という観点で調べてみました。周波数特性についてもう少し検証してみます。 周波数特性を調…

Audacityの「ノイズ除去」を検証してみる

「Audacityでノイズ除去」では AudacityのNoise Reductionを紹介しましたが、はたしてどんなアルゴリズムなのでしょうか。気になったので少し検証してみます。 Audacityのソースコード 特定の周波数をノイズとして消してみる 1kHzの正弦波を生成 2kHzの正弦…

Audacityでノイズ除去

Audacityのノイズ除去(Noise Reduction)は、はじめにノイズの範囲を指定してノイズプロファイルを取得する(ステップ1)、そしてノイズを除去したい範囲を選択してフィルタリングする(ステップ2)という2段階の手順になっています。Audacityについては…

PCMにWAVヘッダを付ける

WAVヘッダを付けると便利 WAVヘッダのテンプレート リニアPCM16ビット、サンプリング周波数16kHz(モノラル)のWAVヘッダ WAVヘッダを取得するAPI 使い方 ファイルサイズを求めるAPI サンプルコード Audacityでファイル読み込み 最後に WAVヘッダを付けると…

FIRフィルタを作って周波数特性を検証

適応フィルタを作ってみる では、サンプルコードを紹介しましたが、実際に動かしてみたいと思います。そこで適応フィルタの前に、まずはシンプルに固定フィルタを検証してみます。 FIRフィルタ サンプルコード 検証用のコード サンプルコード フィルタスルー…

適応フィルタを作ってみる

信号処理の分野では、適応フィルタが色々な目的で使用されています。ちょっとした理由で適応フィルタのプログラムを作ってみました。 ADF【Adaptive Filter】 適応フィルタの構成 適応アルゴリズム サンプルコード:NLMSで作ってみる FIRフィルタ サンプルコ…

MIPSとMCPS(?)、100MIPSは100MHzで動くか?

信号処理とMISP(前編・後編)では、ソフトウェアのベンチマークとしてMIPS【Million Instructions Per Second 】が使われることについて書いてきました。 前編(信号処理とMIPS - Smile Engineering Blog) 後編(信号処理とMIPS・後編 - Smile Engineering…

信号処理とMIPS・後編

ソフトウェアとMIPS 前編(信号処理とMIPS - Smile Engineering Blog)は、ハードウェアの性能を示すMIPS【Million Instructions Per Second 】について書きましたが、今回はソフトウェアのベンチマークとして書きたいと思います。 MIPS コンピューターの処…

信号処理とMIPS

MIPS 【 Million Instructions Per Second 】 とは 信号処理や組み込みの分野では、アルゴリズムを提供するソフトウェア(ファームウェア)が、どれくらいの処理量(演算量)が必要なのか問われます。例えば、信号処理の性能を示すものには、処理された結果…

AIスピーカーの主役はマイク

スピーカーといっても・・・マイクが重要 モスキートーンのAIスピーカー(?) 後編 - Smile Engineering Blog では、高周波でAIスピーカーが反応するかというテーマで考えてみましたが、今回はAIスピーカーについてもう少し調べてみました。代表的なものは…

モスキートーンのAIスピーカー(?) 後編

「AIスピーカ」の音声入力 モスキートーンのAIスピーカー(?) - Smile Engineering Blog (前編)では、「モスキートーン」を中心に書きましたが、今回は「AIスピーカ」の音声入力がモスキートーンや高周波に反応するのか? を考えてみます。 素朴な疑問は…

モスキートーンのAIスピーカー(?)

「 モスキートーン」とは? ある会議で、Blog掲載のテーマについて話をした時のことです。「モスキートーンという若者にしか聞こえない音があるけど、どういうものなのか?」という話題から、「モスキートーンのAIスピーカーなんてものがあったら、、、特定…

デジタル信号処理とは、Audacityでフィルタを使ってみる

今までデジタルオーディオに関して書いてきましたが、この辺でデジタル信号処理についても少し話をしたいと思います。 デジタル信号処理 デジタル信号処理とは、その名の通りデジタル化された信号を処理(加工)する技術ですが、今や専門用語ではなくなりつ…

Audacityで周波数分析

Audacityを使ってみました - Smile Engineering Blogで、「Audacity」を紹介しました。 今回は「Audacity」で周波数の波形表示を使ってみます。 スペクトログラムとスペクトラム Audacityの周波数の波形表示には2つの方法があります。 Audacityの周波数分析…

Audacityを使ってみました

はじめに 音声の録音や音楽ファイルの編集をする時は、音楽用の波形編集ソフトを使うと便利です。私の場合、古い話では「Cool Edit」を使ってました。現在は「Adobe Audition」というソフトを主に使っています。音声や音響業界では、「Cool Edit」の評判が良…

サンプリング周波数とビットレート・後編

オーディオ符号化の圧縮率 オーディオ符号化の圧縮率は、エンコード時のビットレートで決まります。前回( サンプリング周波数とビットレート・前編 - Smile Engineering Blog) では、原音(PCM)のビットレートを中心に書きましたが、今回はエンコード(符…

サンプリング周波数とビットレート・前編

ビットレートはどれくらい? 圧縮形式のオーディオファイルは、ファイルサイズを小さくする(ビットレートを低くして符号化する)と音質が悪くなる傾向にあります。実際どのくらいにするのが良いのでしょうか。。。 オーディオ符号化(AACやMP3など)により…

オーディオファイルのフォーマット

音に関する技術やツールについて 音声や音楽再生で使用されるオーディオファイル(フォーマット)について、ご存知の方も多いと思いますが、ほんの少し技術の話も交えて書いてみたいと思います。代表的なところでは、MP3, AAC, WMAなどがあります。 *.mp3 *.…