pyACA: Documentation 0.3.1
Source Code for Audio Content Analysis
Loading...
Searching...
No Matches
Functions
pyACA.ToolFreq2Bark Namespace Reference

helper function: convert Hz to Bark scale More...

Functions

 ToolFreq2Bark (fInHz, cModel='Schroeder')
 

Detailed Description

helper function: convert Hz to Bark scale

Args: fInHz: The frequency to be converted, can be scalar or vector cModel: The name of the model ('Schroeder' [default], 'Terhardt', 'Zwicker', 'Traunmuller')

Returns: Bark values of the input dimension

Function Documentation

◆ ToolFreq2Bark()

ToolFreq2Bark ( fInHz,
cModel = 'Schroeder' )

Definition at line 17 of file ToolFreq2Bark.py.

17def ToolFreq2Bark(fInHz, cModel='Schroeder'):
18 def acaSchroeder_scalar(f):
19 return 7 * math.asinh(f/650)
20
21 def acaTerhardt_scalar(f):
22 return 13.3 * math.atan(0.75 * f/1000)
23
24 def acaZwicker_scalar(f):
25 return 13 * math.atan(0.76 * f/1000) + 3.5 * math.atan(f/7500)
26
27 def acaTraunmuller_scalar(f):
28 return 26.81/(1+1960./f) - 0.53
29
30 f = np.asarray(fInHz)
31 if f.ndim == 0:
32 if cModel == 'Terhardt':
33 return acaTerhardt_scalar(f)
34 elif cModel == 'Zwicker':
35 return acaZwicker_scalar(f)
36 elif cModel == 'Traunmuller':
37 return acaTraunmuller_scalar(f)
38 else:
39 return acaSchroeder_scalar(f)
40
41 fBark = np.zeros(f.shape)
42 if cModel == 'Terhardt':
43 for k, fi in enumerate(f):
44 fBark[k] = acaTerhardt_scalar(fi)
45 elif cModel == 'Zwicker':
46 for k, fi in enumerate(f):
47 fBark[k] = acaZwicker_scalar(fi)
48 elif cModel == 'Traunmuller':
49 for k, fi in enumerate(f):
50 fBark[k] = acaTraunmuller_scalar(fi)
51 else:
52 for k, fi in enumerate(f):
53 fBark[k] = acaSchroeder_scalar(fi)
54
55 return fBark