質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

3回答

3981閲覧

リアルタイムでマイクから拾った音の音域を取得するには

tanarou

総合スコア12

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

1クリップ

投稿2016/11/29 04:19

Swiftでマイクから拾った音を、低音10%、中音30%、高音60%のようにそれぞれの音域を割合で表示させるにはどうすればいいでしょうか。フーリエ変換について調べてみましたがSwift3で使えそうなサンプルが無く理解出来ませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

func

1 audioRecorder.updateMeters() 2 let dB = audioRecorder.averagePower(forChannel: 0) 3 let atai = max(0, (dB + 77)) / 77 4 nami1.progress = atai 5 6 }

*閾値=77
//・騒がしい場所で使うときは閾値を上げる。
//・大きな声を出せない場所では閾値を下げる。

投稿2016/12/07 11:52

kei1990s

総合スコア25

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

この辺を参考にしてみてはいかがでしょうか。
https://github.com/ooper-shlab/aurioTouch2.0-Swift

投稿2016/11/30 02:17

pebble8888

総合スコア390

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自身ないですが音声分析に興味があるので少し調べてみました。

フーリエ変換について探してみるとvDSPのSwift3対策などのページがありました。同じ方がQiitaでC/C++で書かれたDSPライブラリーを用いた音声分析の記事をいくつかアップされているのでそれらが参考になりそうな気がしました。Swift素人なのでよくは分かりませんが割と最近の記事なのでvDSPというライブラリーより便利で高速なSwift3用のライブラリーはないのかなという印象です。記事を拾い読みするとSwiftのUnsafePointerといったアドレスを直接操作する機構を使ってやるようなことが書いてあるのでそれなりに低レベルな処理に慣れてないと敷居が高そうでした。逆にいえばその辺りを攻略できれば利用はできそうです。

次にFFTの結果を出せたとして、高中低の比率をどうやって出すのが適切なのか(素人考えですが)素朴に考えると高中低でグループ分けしたときの3つの音圧レベルの比率とするのかなと思いました。音圧どうしの比率を採ること自体に物理的な意味があるのか疑問ですがスペクトルメーターが音圧表示であることが普通だと思うので、3つの音域のメーターが同じくらいの高さなら1:1:1と解釈することにしようと考えると「なんとなくそんなものでいいのかな」と思えたのです。

「音圧、音圧レベル」などで検索するとこういったものの物理的な意味や計算方法が載っているページがみつかると思いますのでそれらが参考になると思います。例えばエネルギーが振幅の二乗と周波数の二乗に比例するとか、音圧がエネルギーの(最小音との比率)の対数になるとかです。そういう関係を使ってFFTの結果の振幅をグループ毎に音圧レベルとして集計することを自分はイメージしました。

投稿2016/11/29 13:02

KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問