構成 | |
struct | AngleAndProbability |
角度と確率の組を表す. [詳細] | |
struct | Angles |
角度に関連する定数. [詳細] | |
class | Band |
離散フーリエ変換で得られたスペクトル上での周波数バンドを指すクラス. [詳細] | |
class | BandInformation |
Bandクラスのインスタンスが指す周波数バンドの情報を扱うクラス. [詳細] | |
struct | BandAndHarmonicRatio |
調波構造の倍音の周波数バンドと、基音に対する倍率の組を表す. [詳細] | |
struct | BandAndPower |
周波数バンドと、そのバンドのパワーの組を表す. [詳細] | |
class | BandUtils |
class | BGNEstimator |
バックグラウンドノイズ見積り器. [詳細] | |
struct | Channel |
信号のチャンネルを表す定数を集めた構造体 [詳細] | |
class | ChannelHolder |
任意のデータの組を保持するクラス. [詳細] | |
class | Cluster |
周波数バンドのクラスタリングに使うクラス. [詳細] | |
class | Clustering |
struct | Constants |
さまざまな数学定数を集めた構造体 [詳細] | |
class | DirectionConverter |
HARK標準座標系とhark-binaural内部の角度インデックス番号変換器. [詳細] | |
class | DirectionJudge |
方向を推定するクラスの基底クラス. [詳細] | |
class | JudgeEpipolar |
class | JudgeHRTFMeasured |
測定した頭部伝達関数を利用して角度の識別を行う. [詳細] | |
struct | PassBandSetMode |
周波数遮断・通過フラグ設定モード. [詳細] | |
class | PassBandFlag |
周波数の遮断・通過を表すフラグ. [詳細] | |
class | PassBand |
周波数通過帯域. [詳細] | |
class | BandExtractor |
周波数帯抽出機. [詳細] | |
class | Epipolar |
信号源からの距離差を計算するクラス. [詳細] | |
class | EventHistory |
class | EventHistoryManager |
class | EventID |
struct | EventStatus |
class | Harmonics |
struct | HarmonicSound |
struct | IIPD |
両耳間強度差または位相差を表す構造体. [詳細] | |
struct | IIPDS |
両耳間強度差と両耳間位相差を保持する構造体. [詳細] | |
class | InterauralDifference |
両耳間の差異を表すベースクラス. [詳細] | |
class | InterauralIntensityDifference |
両耳間強度差を表すクラス. [詳細] | |
class | InterauralPhaseDifference |
両耳間位相差を表すクラス. [詳細] | |
class | InvalidInputException |
入力データの異常を表す例外. [詳細] | |
struct | LocalizationSetting |
分離の設定を集めた構造体. [詳細] | |
class | Localize |
struct | LogLevel |
ロギング出力のログレベルを表す. [詳細] | |
class | Logger |
ロギングする. [詳細] | |
class | LRSignalFactory |
空の左右信号を生成する. [詳細] | |
struct | MaxMin |
最大値、最小値を格納する構造体. [詳細] | |
struct | MethodFlag |
音源方向推定の方法を表す定数. [詳細] | |
class | Peak |
class | ProbabilityBase |
確率を表すベースクラス. [詳細] | |
class | Separation |
音源分離ベースクラス. [詳細] | |
class | EpipolarSeparation |
Epipolarによる音源分離クラス. [詳細] | |
class | HRTFSeparation |
HRTFによる音源分離クラス. [詳細] | |
struct | SeparationSetting |
分離の設定を集めた構造体. [詳細] | |
class | SignalBase |
一般的な信号を表す. [詳細] | |
struct | ToSignalArrayImpl |
ToSignalArray()の実装. [詳細] | |
struct | ToSignalArrayImpl< T, T > |
ToSignalArray()の実装. [詳細] | |
class | SignalHolder |
対応する時間領域信号と周波数領域信号の組を格納する. [詳細] | |
struct | RemoveReference |
型Tから参照を取り除く. [詳細] | |
struct | RemoveReference< T & > |
型Tから参照を取り除く. [詳細] | |
struct | AddReference |
型Tを参照型にする. [詳細] | |
struct | AddReference< T & > |
型Tを参照型にする. [詳細] | |
struct | RemoveConst |
型Tを非定数型にする. [詳細] | |
struct | RemoveConst< const T > |
型Tを非定数型にする. [詳細] | |
struct | AddConst |
型Tを定数型にする. [詳細] | |
struct | AddConst< const T > |
型Tを定数型にする. [詳細] | |
struct | DecibelEnergyStruct |
T型がquiet_NaNを持っている場合のDecibelEnergyの実装. [詳細] | |
struct | DecibelEnergyStruct< T, false > |
T型がquiet_NaNを持っていない場合のDecibelEnergyの実装. [詳細] | |
型定義 | |
typedef InterauralIntensityDifference | IID |
両耳間強度差の別名 | |
typedef InterauralPhaseDifference | IPD |
両耳間位相差の別名 | |
typedef ChannelHolder < Spectrum::ptr_t, Spectrum::ptr_t > | LRSpectra |
左右両チャンネルの周波数領域信号を表す型 | |
typedef ChannelHolder < Unspectrum::ptr_t, Unspectrum::ptr_t > | LRUnspectra |
左右両チャンネルの時間領域信号を表す型 | |
typedef ProbabilityBase< double > | Probability |
typedef float | NormalSignalType |
標準的に使う信号の要素の型. | |
typedef SignalBase < NormalSignalType > | Unspectrum |
時間領域信号を表す. | |
typedef SignalBase < std::complex < NormalSignalType > > | Spectrum |
周波数領域信号を表す. | |
関数 | |
Angle | CalibrateDirection (Angle input, Angle model) |
model で示されるデータに近づけるように input のデータの回り込みを補正する. | |
void | CalculateMaxMin (NSDimensionPromise::Angle theta, NSDimensionPromise::Angle width, MaxMin< NSDimensionPromise::Angle > &mma) |
theta±widthの上限値・下限値を計算する. | |
void | SetPassBandFlags (PassBand::ptr_t passBand, PassBandFlag::Kind flag) |
遮断・通過フラグ配列の全要素に値を設定する. | |
template<typename Iterator > | |
Iterator | SearchEID (Iterator begin, Iterator end, EventID eid) |
std::list< EventHistory >::iterator | Search (std::list< EventHistory > &eventHistories, EventID eid, std::list< EventHistory >::iterator begin) |
イベントヒストリーを探す. | |
std::vector < EventHistoryManager::UpdateInfo > ::iterator | Search (std::vector< EventHistoryManager::UpdateInfo > &updateInfoList, EventID eid, std::vector< EventHistoryManager::UpdateInfo >::iterator begin) |
イベントヒストリー更新情報を探す. | |
template<typename T > | |
T | TimevalToMilliseconds (const timeval &tim, bool useException=false) |
boost::shared_ptr< IIPDS > | HRTFToIIPDS (harkio::HARK &harkFile) |
FD::RCPtr< FD::Vector < IID::ElementType > > | ToFDVector (IID::ptr_t iid) |
InterauralIntensityDifferenceからFDVectorへ変換する. | |
FD::RCPtr< FD::Vector < IPD::ElementType > > | ToFDVector (IPD::ptr_t ipd) |
InterauralPhaseDifferenceからFDVectorへ変換する. | |
Angle | getPermissibleDirectionRange (NSDimensionPromise::Angle dir, NSDimensionPromise::Angle min=NSDimensionPromise::Angle::FromDegree(5), NSDimensionPromise::Angle max=NSDimensionPromise::Angle::FromDegree(30)) |
角度ごとに許容される分離の範囲を取得する. | |
double | GetTime () |
1970年1月1日00:00:00 UTCからの経過時間の秒数を得る. | |
template<typename T > | |
const NSDimensionPromise::AngleBase < T > | PhaseDifference (const NSDimensionPromise::LengthBase< T > &lengthDiff, const NSDimensionPromise::FrequencyBase< T > signalFreq, const NSDimensionPromise::Velocity1Base< T > &soundSpeed=NSDimensionPromise::Velocity1Base< T >(340.0)) |
指定された周波数の音が指定された距離だけ進むときの位相差を計算する. | |
template<typename T > | |
bool | IsEqualSignalSize (boost::shared_ptr< ChannelHolder< boost::shared_ptr< SignalBase< T > >, boost::shared_ptr< SignalBase< T > > > > holder) |
左右の信号の要素数が等しいかどうか. | |
template<typename T > | |
SignalBase< T >::ptr_t | MixToMonaural (typename ChannelHolder< typename SignalBase< T >::ptr_t, typename SignalBase< T >::ptr_t >::ptr_t lrsignal) |
2チャンネル信号をモノラル信号へミックスする. | |
template<typename T , typename U > | |
boost::shared_ptr< std::vector < typename SignalBase< T > ::ptr_t > > | ToSignalArray (const FD::Matrix< U > &matrix) |
FD::MatrixからSignalの配列へ変換する. | |
template<typename T > | |
FD::RCPtr< FD::Vector< T > > | ToFDVector (boost::shared_ptr< SignalBase< T > > signal) |
template<typename T > | |
T | DecibelEnergy (T x) |
引数xをデシベル値に変換する. | |
template<typename T > | |
T | Decibel (std::complex< T > c) |
複素数cのエネルギーのデシベル値を計算する. | |
template<typename T > | |
FD::RCPtr< FD::Vector< T > > | ToFDVector (const std::valarray< T > &array) |
std::valarrayからFDVectorへ変換する. | |
template<typename T > | |
T | PhaseDifference (std::complex< T > c0, std::complex< T > c1) |
複素数c1に対する複素数c0の相対角度を計算する. | |
template<typename T > | |
std::vector< std::pair< size_t, T > > | MakeIndexedVector (const std::vector< T > &v) |
変数 | |
DirectionConverter | gDirConv (-5, 90) |
グローバル角度変換器. |
両耳間強度差の別名
両耳間位相差の別名
左右両チャンネルの周波数領域信号を表す型
左右両チャンネルの時間領域信号を表す型
typedef float NSHarkBinaural::NormalSignalType |
標準的に使う信号の要素の型.
標準的に使う信号の要素の型を表す。 HARKやflowdesignerで使う型と一致させると、最適化されやすい。
typedef ProbabilityBase<double> NSHarkBinaural::Probability |
typedef SignalBase<std::complex<NormalSignalType> > NSHarkBinaural::Spectrum |
周波数領域信号を表す.
時間領域信号を表す.
void NSHarkBinaural::CalculateMaxMin | ( | NSDimensionPromise::Angle | theta, | |
NSDimensionPromise::Angle | width, | |||
MaxMin< NSDimensionPromise::Angle > & | mma | |||
) |
theta±widthの上限値・下限値を計算する.
theta | 中心の角度 | |
width | 角度の範囲 | |
mma | 出力用。計算した上限値・下限値(-90°以上、90°以下の角度)を格納する。 |
model で示されるデータに近づけるように input のデータの回り込みを補正する.
model をベースとしたキャリブレーション
input | IPD入力 | |
model | IPDのモデル |
T NSHarkBinaural::Decibel | ( | std::complex< T > | c | ) | [inline] |
複素数cのエネルギーのデシベル値を計算する.
T NSHarkBinaural::DecibelEnergy | ( | T | x | ) | [inline] |
引数xをデシベル値に変換する.
引数が、なんらかのエネルギーを表している場合、この関数は期待した値を計算するが、 引数が電圧など、エネルギーではない場合、結果を2倍しなければならない
NSDimensionPromise::Angle NSHarkBinaural::getPermissibleDirectionRange | ( | NSDimensionPromise::Angle | dir, | |
NSDimensionPromise::Angle | min = NSDimensionPromise::Angle::FromDegree(5) , |
|||
NSDimensionPromise::Angle | max = NSDimensionPromise::Angle::FromDegree(30) | |||
) |
角度ごとに許容される分離の範囲を取得する.
90度 -> max 0度 -> min となる線形関数
double NSHarkBinaural::GetTime | ( | ) |
1970年1月1日00:00:00 UTCからの経過時間の秒数を得る.
boost::shared_ptr< IIPDS > NSHarkBinaural::HRTFToIIPDS | ( | harkio::HARK & | harkFile | ) |
bool NSHarkBinaural::IsEqualSignalSize | ( | boost::shared_ptr< ChannelHolder< boost::shared_ptr< SignalBase< T > >, boost::shared_ptr< SignalBase< T > > > > | holder | ) |
左右の信号の要素数が等しいかどうか.
左右の要素を信号とするChannelHolder型のインスタンスを受け取り、 左右の信号の要素数が一致するか検査する。 holder、holder->Left()、holder->Right()のいずれかがnull参照の場合または 左右の信号の要素数が一致しない場合はfalseを返す。
holder | 左右の要素を信号とするデータの組 |
std::vector<std::pair<size_t, T> > NSHarkBinaural::MakeIndexedVector | ( | const std::vector< T > & | v | ) |
SignalBase<T>::ptr_t NSHarkBinaural::MixToMonaural | ( | typename ChannelHolder< typename SignalBase< T >::ptr_t, typename SignalBase< T >::ptr_t >::ptr_t | lrsignal | ) |
2チャンネル信号をモノラル信号へミックスする.
lrsignal | 2チャンネル信号 |
T NSHarkBinaural::PhaseDifference | ( | std::complex< T > | c0, | |
std::complex< T > | c1 | |||
) |
複素数c1に対する複素数c0の相対角度を計算する.
c0 | 相対角度を求める複素数 | |
c1 | 基準とする複素数 |
const NSDimensionPromise::AngleBase<T> NSHarkBinaural::PhaseDifference | ( | const NSDimensionPromise::LengthBase< T > & | lengthDiff, | |
const NSDimensionPromise::FrequencyBase< T > | signalFreq, | |||
const NSDimensionPromise::Velocity1Base< T > & | soundSpeed = NSDimensionPromise::Velocity1Base<T>(340.0) | |||
) |
指定された周波数の音が指定された距離だけ進むときの位相差を計算する.
lengthDiff | 音が進む距離 | |
signalFreq | 音の周波数 | |
soundSpeed | 1秒間に音が進む距離(音速) |
std::list<EventHistory>::iterator NSHarkBinaural::Search | ( | std::list< EventHistory > & | eventHistories, | |
EventID | eid, | |||
std::list< EventHistory >::iterator | begin | |||
) |
イベントヒストリーを探す.
eventHistories | イベントヒストリーのリスト | |
eid | 探索するキー | |
begin | eventHistories内での探索開始位置 |
std::vector<EventHistoryManager::UpdateInfo>::iterator NSHarkBinaural::Search | ( | std::vector< EventHistoryManager::UpdateInfo > & | updateInfoList, | |
EventID | eid, | |||
std::vector< EventHistoryManager::UpdateInfo >::iterator | begin | |||
) |
イベントヒストリー更新情報を探す.
updateInfoList | イベントヒストリー更新情報のリスト | |
eid | 探索するキー | |
begin | updateInfoList内での探索開始位置 |
Iterator NSHarkBinaural::SearchEID | ( | Iterator | begin, | |
Iterator | end, | |||
EventID | eid | |||
) |
void NSHarkBinaural::SetPassBandFlags | ( | PassBand::ptr_t | passBand, | |
PassBandFlag::Kind | flag | |||
) |
遮断・通過フラグ配列の全要素に値を設定する.
フラグ配列の初期化に用いる
passBand | 遮断・通過フラグ配列 | |
flag | 設定するフラグの値 |
T NSHarkBinaural::TimevalToMilliseconds | ( | const timeval & | tim, | |
bool | useException = false | |||
) |
FD::RCPtr< FD::Vector< IPD::ElementType > > NSHarkBinaural::ToFDVector | ( | IPD::ptr_t | ipd | ) |
InterauralPhaseDifferenceからFDVectorへ変換する.
ipd | 変換元のipd |
FD::RCPtr< FD::Vector< IID::ElementType > > NSHarkBinaural::ToFDVector | ( | IID::ptr_t | iid | ) |
InterauralIntensityDifferenceからFDVectorへ変換する.
iid | 変換元のiid |
FD::RCPtr<FD::Vector<T> > NSHarkBinaural::ToFDVector | ( | const std::valarray< T > & | array | ) |
std::valarrayからFDVectorへ変換する.
array | 変換元の配列 |
FD::RCPtr<FD::Vector<T> > NSHarkBinaural::ToFDVector | ( | boost::shared_ptr< SignalBase< T > > | signal | ) |
boost::shared_ptr<std::vector<typename SignalBase<T>::ptr_t> > NSHarkBinaural::ToSignalArray | ( | const FD::Matrix< U > & | matrix | ) |
FD::MatrixからSignalの配列へ変換する.
Signalの配列のインデックスと、FDMatrixの行番号が対応するように変換される。 変換結果をresultとすると、 result->at(i) と matrix[i] が対応する。
matrix | 変換元の行列 |
グローバル角度変換器.
特に理由がない限り、hark-binaural内部ではこの変換器を使って角度を扱えばよい。