構成 | 型定義 | 関数 | 変数

ネームスペース NSHarkBinaural

構成

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 >
TimevalToMilliseconds (const timeval &tim, bool useException=false)
boost::shared_ptr< IIPDSHRTFToIIPDS (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 >
DecibelEnergy (T x)
 引数xをデシベル値に変換する.
template<typename 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 >
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)
 グローバル角度変換器.

型定義

両耳間強度差の別名

両耳間位相差の別名

左右両チャンネルの周波数領域信号を表す型

左右両チャンネルの時間領域信号を表す型

標準的に使う信号の要素の型.

標準的に使う信号の要素の型を表す。 HARKやflowdesignerで使う型と一致させると、最適化されやすい。

周波数領域信号を表す.

時間領域信号を表す.


関数

void NSHarkBinaural::CalculateMaxMin ( NSDimensionPromise::Angle  theta,
NSDimensionPromise::Angle  width,
MaxMin< NSDimensionPromise::Angle > &  mma 
)

theta±widthの上限値・下限値を計算する.

引数:
theta 中心の角度
width 角度の範囲
mma 出力用。計算した上限値・下限値(-90°以上、90°以下の角度)を格納する。
Angle NSHarkBinaural::CalibrateDirection ( Angle  input,
Angle  model 
)

model で示されるデータに近づけるように input のデータの回り込みを補正する.

model をベースとしたキャリブレーション

引数:
input IPD入力
model IPDのモデル
template<typename T >
T NSHarkBinaural::Decibel ( std::complex< T >  c  )  [inline]

複素数cのエネルギーのデシベル値を計算する.

template<typename T >
T NSHarkBinaural::DecibelEnergy ( x  )  [inline]

引数xをデシベル値に変換する.

引数が、なんらかのエネルギーを表している場合、この関数は期待した値を計算するが、 引数が電圧など、エネルギーではない場合、結果を2倍しなければならない

戻り値:
xのデシベル値。xが非正の場合は、NaN(NaNが無い環境ならば0)になる。
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  ) 
template<typename T >
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 左右の要素を信号とするデータの組
戻り値:
左右の信号の要素数が等しければtrue
template<typename T >
std::vector<std::pair<size_t, T> > NSHarkBinaural::MakeIndexedVector ( const std::vector< T > &  v  ) 
template<typename T >
SignalBase<T>::ptr_t NSHarkBinaural::MixToMonaural ( typename ChannelHolder< typename SignalBase< T >::ptr_t, typename SignalBase< T >::ptr_t >::ptr_t  lrsignal  ) 

2チャンネル信号をモノラル信号へミックスする.

引数:
lrsignal 2チャンネル信号
戻り値:
ミックスされた信号
template<typename T >
T NSHarkBinaural::PhaseDifference ( std::complex< T >  c0,
std::complex< T >  c1 
)

複素数c1に対する複素数c0の相対角度を計算する.

引数:
c0 相対角度を求める複素数
c1 基準とする複素数
戻り値:
相対角度
template<typename T >
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内での探索開始位置
戻り値:
begin以降で始めて見つかった位置
std::vector<EventHistoryManager::UpdateInfo>::iterator NSHarkBinaural::Search ( std::vector< EventHistoryManager::UpdateInfo > &  updateInfoList,
EventID  eid,
std::vector< EventHistoryManager::UpdateInfo >::iterator  begin 
)

イベントヒストリー更新情報を探す.

引数:
updateInfoList イベントヒストリー更新情報のリスト
eid 探索するキー
begin updateInfoList内での探索開始位置
戻り値:
begin以降で始めて見つかった位置
template<typename Iterator >
Iterator NSHarkBinaural::SearchEID ( Iterator  begin,
Iterator  end,
EventID  eid 
)
void NSHarkBinaural::SetPassBandFlags ( PassBand::ptr_t  passBand,
PassBandFlag::Kind  flag 
)

遮断・通過フラグ配列の全要素に値を設定する.

フラグ配列の初期化に用いる

引数:
passBand 遮断・通過フラグ配列
flag 設定するフラグの値
template<typename T >
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
戻り値:
変換された配列
template<typename T >
FD::RCPtr<FD::Vector<T> > NSHarkBinaural::ToFDVector ( const std::valarray< T > &  array  ) 

std::valarrayからFDVectorへ変換する.

引数:
array 変換元の配列
template<typename T >
FD::RCPtr<FD::Vector<T> > NSHarkBinaural::ToFDVector ( boost::shared_ptr< SignalBase< T > >  signal  ) 
template<typename T , typename U >
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内部ではこの変換器を使って角度を扱えばよい。