タグ

audioに関するsadoru3のブックマーク (42)

  • AVAudioEngineでの音声ファイル再生で、再生時間の取得・再生位置指定を行う - 麦芽を支える技術

    あまり明確な情報がなかなか見つからなくてだいぶ苦戦したけど、一応出来たのでメモ。 もうちょっとスマートなやり方あるのかもしれませんが。 やりたいこと AVAudioEngine、AVAudioPlayerNodeを使った音声データの再生 総再生時間、現在の再生時間を取得 任意の再生位置からの音声再生(シーク機能) Webでいろいろ調べていると、上記1点目の基的なAVAudioEngineの使用方法や、エフェクト・速度変更などの音声効果の使い方は以下のように結構載ってるんですが、通常の音声プレイヤーとして必要な2,3点目のやり方がなかなか見つからなかったんですよねー。 [iOS 8] AVFoundation Audio機能メモ [iOS 8] AVFoundationのAVAudioPlayerNodeで音楽ファイルを再生してみる Sound effects using AVAudioE

    AVAudioEngineでの音声ファイル再生で、再生時間の取得・再生位置指定を行う - 麦芽を支える技術
    sadoru3
    sadoru3 2020/04/15
    Audioファイル再生時間を秒単位以上の精度で扱うときに参考になるのかも
  • Core Audio その2 AudioStreamBasicDescription | objective-audio

    Core Audioにおいて、オーディオデータの状態(リニアPCM等のフォーマットとか、ビットやサンプリングレートとか、チャンネル数とか)を表す構造体がAudioStreamBasicDescriptionです。 struct AudioStreamBasicDescription { Float64 mSampleRate; //サンプリング周波数(1秒間のフレーム数) UInt32  mFormatID; //フォーマットID(リニアPCM、MP3、AACなど) UInt32  mFormatFlags; //フォーマットフラグ(エンディアン、整数or浮動小数点数) UInt32  mBytesPerPacket; //1パケット(データを読み書きする単位)のバイト数 UInt32  mFramesPerPacket; //1パケットのフレーム数 UInt32  mBytesPerFr

  • 【iOS】Audio Queue

    Audio Queue とは? 音声の記録、再生を行うために使用するソフトウェアオブジェクトのことAudioQueueRefで表現され、AudioQueue.hに宣言されている全コーデックを取り扱うことができる 録音用のAudio Queue 出力側でコールバック関数を利用するバッファがキューから受け取った音声データをコールバック関数で記録する 再生用のAudio Queue 入力側でコールバック関数を利用する音声データの取得、キューへのデータ引き渡しを行う Audio Queue Buffer AudioQueueBufferRef型のデータ構造 const UInt32 mAudioDataBytesCapacity void *const mAudioData バッファ(音声データの一時的な塊を格納するメモリ領域) UInt32 mAudioDataByteSize void *mU

    【iOS】Audio Queue
    sadoru3
    sadoru3 2020/03/20
    AudioQueue関連コールバックなどの内容解説 [iOS]
  • Core Audioの復習

  • ダウンロード可能な Audio Unit 関連のサンプルコード11個 - Qiita

    Audio Unit は、iOS の Core Audio においてもっとも低レベル(ハードウェアより)に位置するフレームワークです。そのため低レイテンシを要求されるオーディオ処理機能を提供するアプリに向いています。 「ユニットをつなげて複雑なオーディオ処理を実現する」というしくみ(AUGraph)を持っており、まるでギターのエフェクターをつないで音をつくるようにユニット同士を結合できて、実装していて楽しいフレームワークでもあります。 ただ API は全部 C ベースだし、音を再生するだけでも(AVAudioPlayer 等と比較すると)複雑だったりするので、参考になるサンプルをいろいろと集めてみました。 どの Audio Unit を使用しているか(kAudioUnitSubType_xxxx で判断) どういうサンプルか 最終更新はいつか の観点からまとめています。 使用ユニットの項目

    ダウンロード可能な Audio Unit 関連のサンプルコード11個 - Qiita
  • iOS オーディオ関係の記事まとめ - Qiita

    iOS のオーディオ関係のことを調べていましたが、Safari で片端からタブで開いていたらメモリが足りなくなりそうだったのでこちらに移しました。自分用メモです。 Apple AV Foundation https://developer.apple.com/av-foundation/ Air Play https://developer.apple.com/airplay/ Audio Session プログラミングガイド https://developer.apple.com/jp/devcenter/ios/library/documentation/AudioSessionProgrammingGuide.pdf https://developer.apple.com/library/ios/documentation/Audio/Conceptual/AudioSessionP

    iOS オーディオ関係の記事まとめ - Qiita
  • iOS のオーディオ/サウンド処理について学べる書籍10冊+α - その後のその後

    Core Image や vImage や OpenCV、それらをラップする各種ライブラリの充実のおかげで、画像処理まわりは高度な処理をずいぶん簡単に高速に実装できるようになってきましたが、オーディオ処理(音声処理)まわりはいまだに再生や録音などの基的なところから一歩踏み込もうとすると途端に敷居が高くなるイメージがあります。 たとえば2年ほど前にリリースした『i聖徳太子』は、「左右のイヤフォンから別々の音を再生する」という非常にシンプルなアイデアですが、たったこれだけのことでも AVAudioPlayer やMPMusicPlayerController とかだけでは実現することができず、OpenALやAVAsset等を使用して実現しています。 で、もうちょっとオーディオ処理まわりを勉強してみたいなと思い、まず手元にある書籍で参考になりそうなものを洗い出してみました。 以下、(だいたい)

    iOS のオーディオ/サウンド処理について学べる書籍10冊+α - その後のその後
  • http://efu.jp.net/soft/ws/ws.html

    sadoru3
    sadoru3 2020/02/16
    “この WaveSpectra は、サウンドカードや、Waveファイルを入力とする音声信号を FFT(高速フーリエ変換)して、リアルタイムにその周波数成分(スペクトラム)を表示するツールです。”
  • 音を利用する 2 〜Android デバイスでの音波通信:準備編〜 : DSAS開発者の部屋

    音を利用する 1 この記事の内容 前回の記事では音を媒体とする機器間の情報通信が近年ふたたび注目されていることに触れ複数の具体的な事例を挙げました。近距離通信手段としての音波の利用には技術的好奇心をそそられますが、それをどのように形にすればよいのかは案外ピンと来ません。そこで、Android デバイスを題材に手元で行った音波通信の実験と試作の内容をこれから何回かに分けて紹介します。今回は準備編として実装に必要な要素の整理を行います。 準備 1. Andorid での音声入出力処理を覚える 入力:AudioRecord クラス 出力:AudioTrack クラス 試作 処理のイメージ 動作の様子 ソースコード 準備 2. 任意の周波数の音波を生成・出力する サイン波について サンプリングレートについて 試作 動作の様子 ソースコード スプレッドシートを使っての検証 準備 3. 集音したデータ

    音を利用する 2 〜Android デバイスでの音波通信:準備編〜 : DSAS開発者の部屋
    sadoru3
    sadoru3 2020/02/01
    jtransform FFT解説と使い方 Android Java サンプル実装例
  • Android/JavaでFFT(高速フーリエ変換) | Androidアプリ開発日誌 | WEB道

    AndroidでFFT(高速フーリエ変換) Android sdk にはフーリエ変換のライブラリが標準で(API Level 9 より android.media.audiofx.Visualizer)ついています。 また、apache.common.mathなどの数学ライブラリも有名でよく使用されています。フーリエ変換の説明は割愛しますが、FFT(高速フーリエ変換)はデータの個数を2のべき乗にすることで高速化を実現するアルゴリズムで音声・画像・信号処理に多く用いられます。 Java 以外では フリーソフトウェアの中ではもっとも高速といわれるFFTWが特に有名です。 Parallel Colt Parallel Colt とは、CERN(欧州原子核研究機構)Colt Project で開発されたJavaによる科学技術計算のためのライブラリをマルチスレッド化したもの。データ解析、線形代数、多

  • AndroidでFFTはJTransformsが楽だった - 或る阿呆の記

    最近Androidアプリの開発をいまさらながらはじめました。今回作ったのは、音声をAndroidスマートフォンに入力し特定の音が鳴っていないか検出するアプリ。FFTで周波数解析して、周波数領域でピーク検出をするのが簡単そうです(時系列データだとノイズの影響が大きく難しそうだった)。それで、AndroidでFFTって、何がいいのかな…と調べると、標準APIのVisualizerの話がよく出てきました。…が、単純にFFTするだけなら、JTransformsが使いやすかった、という記事です。 AndroidでFFTをするには 周波数解析といえばなんといってもフーリエ変換(フーリエ解析)です。フーリエ変換とは、かいつまんで言うとあらゆる波をsin波とcos波で表現しましょうというものです。1秒間で一回りするsin波を1Hzと表現し、1秒間に10周するsin波を10Hzといいます。そういう無数の○○

    AndroidでFFTはJTransformsが楽だった - 或る阿呆の記
    sadoru3
    sadoru3 2020/01/31
    “標準APIのVisualizerの話がよく出てきました。…が、単純にFFTするだけなら、JTransformsが使いやすかった、という記事です”
  • WAVEファイルの構造

    WAVEファイルの構造 無圧縮の音声ファイルにWAVEファイルというものがあります。 この形式で保存されているファイルの構造を説明します。 音声ファイルを編集しようと考えている方の参考になればとおもいます。 ヘッダ情報の構成

  • 窓関数を用いる理由- ロジカルアーツ研究所

    FFTを行う際によく窓関数というものが用いられます。しかし何のために使うのかよくわからずに何となく使っている方も多いのではないでしょうか。後学のためにここで少しだけ説明しておきましょう。 まずその前にFFTを行う際の大前提について知っておかなければなりません。フーリエ変換の定義によれば、「あらゆる周期関数は正弦波と余弦波の重ね合わせで表すことができる」ことが知られています。ここで「周期関数」というところに深い意味があるのですが、要するに周期関数とはあるパターンが一定の周期で繰り返される関数のことを言うわけです。逆に言えば、フーリエ変換を行うためには周期関数でなければならないということになります。 しかしコンピュータでFFTを行う場合、無限のサンプルを取るわけにはいきませんから、当然ある限られた範囲のサンプルを取って変換を行うことになります。特にFFTの場合はサンプル数に制約があって、102

    sadoru3
    sadoru3 2020/01/29
    FFTに使うハニング窓(ハン窓)、ハミング窓
  • swiftでWAVファイルを読み込みたい

    AVAudioFileを使ってみてはいかがでしょうか。 ネタ元はこちらですが、最新版のXcode 10/Swift 4.2に合わせて書き換えています。(申し訳ありませんが、Xcode 9.0.1は手元にありません。それほど大きな書き換えはいらないと思います…。) import Foundation import AVFoundation let url = URL(fileURLWithPath: "/Users/dev/Desktop/sound.wav") doBlock: do { //所定の処理形式でデータを読み込む(16-bit整数、非インターリーブ) let file = try AVAudioFile(forReading: url, commonFormat: .pcmFormatInt16, interleaved: false) let format = file.pr

    swiftでWAVファイルを読み込みたい
    sadoru3
    sadoru3 2020/01/29
    “wavファイルから最終的にデータ部分をIntやFloatのarrayとして取り出したい”
  • iPhoneで音声解析!FFTで周波数特性を得る方法 - 株式会社CFlatの明後日スタイルのブログ

    iOSで音声を録音するのはもちろんできますが、FFTのライブラリも標準で組み込まれていて手軽に使えます。今日は録音した音声ファイルを解析して周波数特性(パワースペクトル)を得るところまでを紹介します。意外とそのものずばりの方法はなかなか見つからないので。 なお、サンプルコードはエラー処理を省いているので必要であれば適宜追加する必要有りです。 フレームワークを追加する フレームワークを3つ追加します。 AVFoundation ← 録音 AudioToolBox ← ExtAudioFileのため Accelerate ← FFTのため 音声を録音するまで まずAudioSessionの初期化が必要です。これをやっておかないと録音できません。このコードは起動時に実行されれば良いのでAppDelegateのdidFinishLaunchingWithOptionsあたりで呼んでおけばOKです。

    iPhoneで音声解析!FFTで周波数特性を得る方法 - 株式会社CFlatの明後日スタイルのブログ
    sadoru3
    sadoru3 2020/01/29
    “音声ファイルを解析して周波数特性(パワースペクトル)を得るところまでを紹介します”
  • [AVFoundation][Swift] Swiftでオーディオ・音声分析への道 1 オーディオデータ読み込み、書き出し - Qiita

    [AVFoundation][Swift] Swiftでオーディオ・音声分析への道 1 オーディオデータ読み込み、書き出しXcodeavfoundationSwift Swiftでオーディオ・音声分析への道 1 オーディオデータ読み込み、再生、書き出し はじめに vDSP系ライブラリを使用したオーディオ・音声分析の記事をいくつか書いてから、随分と時間が経ちました。 当時はまだSwiftが世に出て日が浅かったのですが、今日ではVersionも2になり、(もうすぐ3が出ますが)、オーディオ処理のプログラムもSwiftで書きたい!という欲求のもと色々と試行錯誤してきました。 これを機に、今まで書いてきた 「オーディオ・音声分析への道」のSwift版をここにまとめておこうと思います。 1/3は自分が忘れないためのメモ、1/3は皆様に間違いの指摘や、新たな提案をしていただく機会を作ること、残り1/3

    [AVFoundation][Swift] Swiftでオーディオ・音声分析への道 1 オーディオデータ読み込み、書き出し - Qiita
    sadoru3
    sadoru3 2020/01/28
    AVAudioFileクラスを使用
  • vDSPを使う(高速フーリエ変換編 その2) – なんてこったい

    いよいよvDSPを使って高速フーリエ変換してみます。※この記事はObjective-Audioさんのこちらの記事を参考に書いています。 vDSPの設定 加減乗除の時同様、vDSPを使えるように設定します。設定の仕方は加減乗除の記事を参照してください。基的にはAccelerate.frameworkをリンクして、<Accelerate/Accelerate.h>をインポートするだけです。 解析する信号の準備 フーリエ変換させたい信号を用意します。ファイルやマイクから読み込んでもいいですが、長くなるので今回はサインウェーブを適当に合成して作ります。 信号の長さは前回の記事で触れたように2のn乗になっている必要があるので、2の9乗(512)にします。 float inputWave[512]; float phase = 0.0f; float freq = 30.0f; for (int i

    sadoru3
    sadoru3 2020/01/23
    FFT Objective-c
  • 高速フーリエ変換 | objective-audio

    vDSPで高速フーリエ変換を行う関数の使い方です。 vDSP One-Dimensional Fast Fourier Transforms Referenceというリファレンスを見ると、一次元のフーリエ変換だけで30個ほどの関数が用意されています。 大きく分けてRealとComplexがあり、そのそれぞれがさらに、In-Place(変換前のバッファにそのまま上書き)かOut-of-Place(変換前と後で別々のバッファ)かで分かれています。さらに細かく見るとfloat用とdouble用とか、一度にたくさん処理するものとか、いろいろあります。 今回はIn-PlaceでComplexのfft_zip()を使ってみます。 ところで、このfft_zip()関数などは、リファレンスには関数名にvDSP_がついていますが、コード補完では引数付きの状態では出てこなくて、vDSP_がつかないfft_zi

    sadoru3
    sadoru3 2020/01/22
    “vDSPで高速フーリエ変換を行う関数の使い方です。 ”
  • [vDSP][信号処理]オーディオ・音声分析への道6 高速フーリエ変換 FFT その2 - Qiita

    今回はFFTによって得られたデータにFiltering処理を施して、iFFTを行い、結果をwavデータに出力したいと思います。 手順としては、 wavデータを読み込む FFTフレーム分を取り出す FFT イコライジング iFFT wavデータとして書き出す 以上です。 C言語でのwavデータ取り扱いについては、Libsndfileを使います。 Xcodeへの導入と使い方に関しては、この記事を参照してください。 以前の記事では、wavデータの書き出しは紹介しましたが、読み込みには触れていませんでした。今回はそれらもまとめてやりたいと思います。 まず2秒間のホワイトノイズを録音したwavデータを用意します。 https://soundcloud.com/keitaro-takahashi/input 既存関数のライブラリ化 前回のFFTのソースコードのままだと、使い勝手が悪いので、FFT関数と

    [vDSP][信号処理]オーディオ・音声分析への道6 高速フーリエ変換 FFT その2 - Qiita
  • https://codeday.me/jp/qa/20190306/333289.html

    sadoru3
    sadoru3 2019/11/30
    EZAudio, マイクからの入力データ(float)から音量・dB取り出しの例