Random Numbers and Probability Distributions¶
Random number generators, multivariate Gaussian mixtures, k-means clustering, and probability density functions.
Random number generation¶
v_randvec
¶
V_RANDVEC - Generate random vectors from a GMM distribution.
v_randvec
¶
Generate real or complex GMM/lognormal random vectors.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
n
|
int
|
Number of points to generate. |
required |
m
|
array_like
|
Mixture means, shape (k, p). |
required |
c
|
array_like
|
Covariances: diagonal (k, p), full (p, p, k), or scalar per mixture. |
None
|
w
|
array_like
|
Mixture weights (k,). Default: equal weights. |
None
|
mode
|
str
|
'g' = real Gaussian (default), 'c' = complex Gaussian, 'l' = lognormal. |
'g'
|
Returns:
| Name | Type | Description |
|---|---|---|
x |
ndarray
|
Output data, shape (n, p). |
kx |
ndarray
|
Mixture number for each row (0-based), shape (n,). |
Source code in pyvoicebox/v_randvec.py
v_randiscr
¶
V_RANDISCR - Generate discrete random values with specified probabilities.
v_randiscr
¶
Generate discrete random numbers with specified probabilities.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
p
|
array_like
|
Probabilities (not necessarily normalized). Default: uniform. |
None
|
n
|
int
|
Number of random values to generate. Positive = with replacement, negative = without replacement. Default: 1. |
1
|
a
|
array_like
|
Output alphabet. Default: 0-based indices. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
x |
ndarray
|
Vector of values taken from alphabet a. |
Source code in pyvoicebox/v_randiscr.py
v_stdspectrum
¶
V_STDSPECTRUM - Generate standard acoustic/speech spectra (simplified).
v_stdspectrum
¶
Generate standard acoustic/speech spectra in s- or z-domain.
Simplified implementation supporting s-domain output and basic z-domain conversion for the most common spectrum types.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
s
|
int or str
|
Spectrum type: 1 = White 2 = A-Weight 3 = B-Weight 4 = C-Weight 9 = USASI |
required |
m
|
str
|
Mode: 's' for s-domain, 'z' for z-domain. Default 's'. |
's'
|
f
|
float
|
Sample frequency (for 'z' mode). Default 8192. |
8192
|
n
|
int
|
Number of samples (for 't' mode). |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
b |
ndarray
|
Numerator coefficients. |
a |
ndarray
|
Denominator coefficients. |
Source code in pyvoicebox/v_stdspectrum.py
v_randfilt
¶
V_RANDFILT - Generate filtered Gaussian noise without initial transient.
v_randfilt
¶
Generate filtered Gaussian noise without initial transient.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pb
|
array_like
|
Numerator polynomial of discrete time filter. |
required |
pa
|
array_like
|
Denominator polynomial of discrete time filter. |
required |
ny
|
int
|
Number of output samples required. |
0
|
zi
|
array_like
|
Initial filter state. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
y |
ndarray
|
Filtered Gaussian noise. |
zf |
ndarray
|
Final filter state. |
u |
ndarray
|
State covariance factor (u@u' = state covariance). |
p |
float
|
Expected value of y(i)^2. |
Source code in pyvoicebox/v_randfilt.py
v_rnsubset
¶
V_RNSUBSET - Choose k distinct random integers from 1:n.
v_rnsubset
¶
Choose k distinct random integers from 0:n-1.
Note: Returns 0-based indices (unlike MATLAB's 1-based).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
k
|
int
|
Number of distinct integers required. |
required |
n
|
int
|
Range is 0 to n-1. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
m |
ndarray
|
Array of k distinct random integers. |
Source code in pyvoicebox/v_rnsubset.py
v_usasi
¶
V_USASI - Generate USASI noise.
v_usasi
¶
Generate n samples of USASI noise at sample frequency fs.
USASI noise simulates long-term average audio program material.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
n
|
int
|
Number of samples. |
required |
fs
|
float
|
Sample frequency in Hz. Default 8000. |
8000
|
Returns:
| Name | Type | Description |
|---|---|---|
x |
ndarray
|
USASI noise signal. |
Source code in pyvoicebox/v_usasi.py
Gaussian mixtures and k-means¶
v_gaussmix
¶
V_GAUSSMIX - Fit a Gaussian mixture model using EM algorithm.
v_gaussmix
¶
v_gaussmix(
x, c=None, l=None, m0=None, v0=None, w0=None, wx=None
) -> tuple[
ndarray,
ndarray,
ndarray,
float,
float,
ndarray,
ndarray,
]
Fit a Gaussian mixture PDF to data using EM algorithm.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
array_like
|
Input data, shape (n, p). |
required |
c
|
float
|
Minimum variance of normalized data. Default: 1/n^2. |
None
|
l
|
float
|
Max iterations (integer part) + stopping threshold (fractional part). Default: 100.0001. |
None
|
m0
|
int or array_like
|
Number of mixtures, or initial means (k, p). |
None
|
v0
|
str or array_like
|
Initialization mode string or initial variances. |
None
|
w0
|
array_like
|
Initial weights or data point weights. |
None
|
wx
|
array_like
|
Data point weights when m0/v0/w0 are explicit initial values. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
m |
ndarray
|
Mixture means, shape (k, p). |
v |
ndarray
|
Mixture variances, shape (k, p) or (p, p, k). |
w |
ndarray
|
Mixture weights, shape (k,). |
g |
float
|
Average log probability. |
f |
float
|
Fisher's Discriminant. |
pp |
ndarray
|
Log probability of each data point. |
gg |
ndarray
|
Average log probabilities at each iteration. |
Source code in pyvoicebox/v_gaussmix.py
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 | |
v_gaussmixb
¶
V_GAUSSMIXB - Approximate Bhattacharyya divergence between two GMMs.
v_gaussmixb
¶
Approximate Bhattacharyya divergence between two GMMs.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
mf
|
array_like
|
Mixture means for GMM f, shape (kf, p). |
required |
vf
|
array_like
|
Variances for GMM f. |
None
|
wf
|
array_like
|
Weights for GMM f. |
None
|
mg
|
array_like
|
Mixture means for GMM g. If omitted, g=f. |
None
|
vg
|
array_like
|
Variances for GMM g. |
None
|
wg
|
array_like
|
Weights for GMM g. |
None
|
nx
|
int
|
Number of samples for importance sampling (default 1000). 0 for upper bound only. |
1000
|
Returns:
| Name | Type | Description |
|---|---|---|
d |
float
|
Approximate Bhattacharyya divergence. |
dbfg |
ndarray
|
Exact Bhattacharyya divergence between components. |
Source code in pyvoicebox/v_gaussmixb.py
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 | |
v_gaussmixd
¶
V_GAUSSMIXD - Marginal and conditional Gaussian mixture densities.
v_gaussmixd
¶
v_gaussmixd(
y,
m,
v,
w,
a=None,
b=None,
f=None,
g=None,
return_mixtures=False,
) -> tuple[ndarray, ndarray]
Compute conditional GMM densities.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
y
|
array_like
|
Conditioning data, shape (n, q). |
required |
m
|
array_like
|
Mixture means, shape (k, p). |
required |
v
|
array_like
|
Variances: diagonal (k, p) or full (p, p, k). |
required |
w
|
array_like
|
Mixture weights (k,). |
required |
a
|
array_like
|
Conditioning transformation matrix. |
None
|
b
|
array_like
|
Dimension selection indices (1-based, MATLAB convention). |
None
|
f
|
array_like
|
Output transformation matrix. |
None
|
g
|
array_like
|
Output offset or dimension selection. |
None
|
return_mixtures
|
bool
|
If True, return per-mixture means and weights. |
False
|
Returns:
| Name | Type | Description |
|---|---|---|
mz |
ndarray
|
Global mean of z for each y (n, r), or per-mixture if return_mixtures=True. |
vz |
ndarray
|
Global or per-mixture covariances. |
wz |
ndarray
|
Mixture weights (only if return_mixtures=True). |
Source code in pyvoicebox/v_gaussmixd.py
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | |
v_gaussmixg
¶
V_GAUSSMIXG - Global mean, variance and mode of a GMM (computation only).
v_gaussmixg
¶
Compute global mean, variance and modes of a GMM.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
m
|
array_like
|
Mixture means, shape (k, p). |
required |
v
|
array_like
|
Variances: diagonal (k, p) or full (p, p, k). Default: ones. |
None
|
w
|
array_like
|
Mixture weights. Default: uniform. |
None
|
n_modes
|
int
|
Maximum number of modes to find (default 1). |
1
|
Returns:
| Name | Type | Description |
|---|---|---|
mg |
ndarray
|
Global mean, shape (p,). |
vg |
ndarray
|
Global covariance, shape (p, p). |
pg |
ndarray
|
Sorted list of modes, shape (n_modes, p). |
pv |
ndarray
|
Log PDF at the modes, shape (n_modes,). |
Source code in pyvoicebox/v_gaussmixg.py
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 | |
v_gaussmixk
¶
V_GAUSSMIXK - Approximate KL divergence between two GMMs.
v_gaussmixk
¶
Approximate Kullback-Leibler divergence between two GMMs.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
mf
|
array_like
|
Mixture means for GMM f, shape (kf, p). |
required |
vf
|
array_like
|
Variances for GMM f. Diagonal (kf, p) or full (p, p, kf). |
None
|
wf
|
array_like
|
Weights for GMM f. |
None
|
mg
|
array_like
|
Mixture means for GMM g. |
None
|
vg
|
array_like
|
Variances for GMM g. |
None
|
wg
|
array_like
|
Weights for GMM g. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
d |
float
|
Approximate KL divergence D(f||g). |
klfg |
ndarray
|
Exact KL divergence between components. |
Source code in pyvoicebox/v_gaussmixk.py
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | |
v_gaussmixm
¶
V_GAUSSMIXM - Estimate mean and variance of the magnitude of a GMM.
v_gaussmixm
¶
Estimate mean and variance of the magnitude of a GMM.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
m
|
array_like
|
Mixture means, shape (k, p). |
required |
v
|
array_like
|
Variances: diagonal (k, p) or full (p, p, k). |
None
|
w
|
array_like
|
Mixture weights (k,). |
None
|
z
|
array_like
|
Origins, shape (t, p). |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
mm |
ndarray
|
Mean of |x-z|, shape (t,). |
mc |
ndarray
|
Variance (or covariance) of |x-z|. |
Source code in pyvoicebox/v_gaussmixm.py
v_gaussmixp
¶
V_GAUSSMIXP - Calculate log probability densities from a Gaussian mixture model.
v_gaussmixp
¶
Calculate log probability densities from a Gaussian mixture model.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
y
|
array_like
|
Input data, shape (n, q). |
required |
m
|
array_like
|
Mixture means, shape (k, p). |
required |
v
|
array_like
|
Variances: diagonal (k, p) or full (p, p, k). Default: identity. |
None
|
w
|
array_like
|
Mixture weights (k,), must sum to 1. Default: uniform. |
None
|
a
|
array_like
|
Transformation matrix (q, p). y = x*A' + B'. |
None
|
b
|
array_like
|
Offset vector (q,). |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
lp |
ndarray
|
Log probability of each data point (n,). |
rp |
ndarray
|
Relative probability of each mixture (n, k). |
kh |
ndarray
|
Index of highest probability mixture (n,). |
kp |
ndarray
|
Relative probability of highest mixture (n,). |
Source code in pyvoicebox/v_gaussmixp.py
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | |
v_gaussmixt
¶
V_GAUSSMIXT - Multiply two GMM PDFs.
v_gaussmixt
¶
Multiply two GMM PDFs.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
m1
|
array_like
|
Mixture means, shape (k1, p) and (k2, p). |
required |
m2
|
array_like
|
Mixture means, shape (k1, p) and (k2, p). |
required |
v1
|
array_like
|
Variances: diagonal (ki, p) or full (p, p, ki). |
required |
v2
|
array_like
|
Variances: diagonal (ki, p) or full (p, p, ki). |
required |
w1
|
array_like
|
Mixture weights. |
required |
w2
|
array_like
|
Mixture weights. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
m |
ndarray
|
Product mixture means, shape (k1*k2, p). |
v |
ndarray
|
Product variances. |
w |
ndarray
|
Product weights, shape (k1*k2,). |
Source code in pyvoicebox/v_gaussmixt.py
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | |
v_gmmlpdf
¶
V_GMMLPDF - Obsolete wrapper for v_gaussmixp.
v_kmeans
¶
V_KMEANS - K-means clustering algorithm.
v_kmeans
¶
Vector quantization using K-means algorithm.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
d
|
array_like
|
Data vectors, shape (n, p). |
required |
k
|
int
|
Number of centres required. |
required |
x0
|
str or array_like
|
Initial centres (k, p) or initialization method: 'f' = pick k random data points (default), 'p' = random partition centroids. |
'f'
|
l
|
int
|
Maximum number of iterations (default 300). Use 0 to just compute distances for given centres. |
300
|
Returns:
| Name | Type | Description |
|---|---|---|
x |
ndarray
|
Output centres (k, p), or mean squared error if l=0. |
g |
float or ndarray
|
Mean squared error, or cluster assignments if l=0. |
j |
ndarray
|
Cluster assignments for each data point (0-based). |
gg |
ndarray
|
Mean squared error at each iteration (only if l > 0). |
Source code in pyvoicebox/v_kmeans.py
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | |
v_kmeanlbg
¶
V_KMEANLBG - K-means using Linde-Buzo-Gray algorithm.
v_kmeanlbg
¶
Vector quantization using the Linde-Buzo-Gray algorithm.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
d
|
array_like
|
Data vectors (one per row), shape (n, p). |
required |
k
|
int
|
Number of centres required. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
x |
ndarray
|
Output centres, shape (k, p). |
esq |
float
|
Mean squared error. |
j |
ndarray
|
Cluster assignments (0-based). |
Source code in pyvoicebox/v_kmeanlbg.py
v_kmeanhar
¶
V_KMEANHAR - K-harmonic means clustering algorithm.
v_kmeanhar
¶
Vector quantization using K-harmonic means algorithm.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
d
|
array_like
|
Data vectors, shape (n, p). |
required |
k
|
int
|
Number of centres required. |
required |
l
|
float
|
Max iterations (integer part) + stopping threshold (fractional part). Default: 50.001. |
None
|
e
|
int
|
Exponent in the cost function (default 4). |
None
|
x0
|
str or array_like
|
Initial centres or initialization method ('f' or 'p'). |
'f'
|
Returns:
| Name | Type | Description |
|---|---|---|
x |
ndarray
|
Output centres, shape (k, p). |
g |
float
|
Final performance criterion (normalized by n). |
xn |
ndarray
|
Nearest centre for each input point (0-based). |
gg |
ndarray
|
Performance criterion at each iteration. |
Source code in pyvoicebox/v_kmeanhar.py
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | |
Probability density functions¶
v_lognmpdf
¶
V_LOGNMPDF - Calculate PDF of a multivariate lognormal distribution.
v_lognmpdf
¶
Calculate PDF of a multivariate lognormal distribution.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
array_like
|
Points at which to evaluate, shape (n, d). |
required |
m
|
array_like
|
Mean vector (d,). Default: ones. |
None
|
v
|
array_like
|
Covariance matrix (d, d) or diagonal vector (d,). Default: identity. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
p |
ndarray
|
PDF values, shape (n,). |
Source code in pyvoicebox/v_lognmpdf.py
v_normcdflog
¶
V_NORMCDFLOG - Log of normal CDF, accurate for large negative values.
v_normcdflog
¶
Calculate log of Normal Cumulative Distribution function.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
array_like
|
Input data. |
required |
m
|
float
|
Mean of Normal distribution (default 0). |
None
|
s
|
float
|
Std deviation of Normal distribution (default 1). |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
p |
ndarray
|
log(normcdf(x)); same shape as x. |
Source code in pyvoicebox/v_normcdflog.py
v_chimv
¶
V_CHIMV - Approximate mean and variance of non-central chi distribution.
v_chimv
¶
Approximate mean and variance of non-central chi distribution.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
n
|
int
|
Degrees of freedom. |
required |
l
|
float or array_like
|
Non-centrality parameter (default 0). |
0
|
s
|
float
|
Standard deviation of Gaussian (default 1). |
1
|
Returns:
| Name | Type | Description |
|---|---|---|
m |
ndarray
|
Mean of chi distribution. |
v |
ndarray
|
Variance of chi distribution. |
Source code in pyvoicebox/v_chimv.py
v_vonmisespdf
¶
V_VONMISESPDF - Von Mises probability distribution.
v_vonmisespdf
¶
Von Mises probability distribution.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
array_like
|
Input values (in radians). |
required |
m
|
float
|
Mean angle (in radians). |
required |
k
|
float
|
Concentration parameter. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
p |
ndarray
|
Probability density values (same shape as x). |
Source code in pyvoicebox/v_vonmisespdf.py
v_maxgauss
¶
V_MAXGAUSS - Gaussian approximation to the max of a Gaussian vector.
v_maxgauss
¶
Determine Gaussian approximation to max of a Gaussian vector.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
m
|
array_like
|
Mean vector of length N. |
required |
c
|
array_like
|
Covariance matrix (N,N) or vector of variances (N,). |
None
|
d
|
array_like
|
Covariance w.r.t. some other variables (N,K). |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
u |
float
|
Mean of max(x). |
v |
float
|
Variance of max(x). |
p |
ndarray
|
Probability of each element being the max (N,). |
r |
ndarray
|
Covariance between max(x) and the d-variables (1,K). |
Source code in pyvoicebox/v_maxgauss.py
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | |
v_berk2prob
¶
V_BERK2PROB - Convert Berksons (log-odds base 2) to probability.
v_berk2prob
¶
Convert Berksons to probability.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
b
|
array_like
|
Berkson values (log-odds base 2). |
required |
Returns:
| Name | Type | Description |
|---|---|---|
p |
ndarray
|
Corresponding probability values. |
d |
ndarray
|
Corresponding derivatives dP/dB. |
Source code in pyvoicebox/v_berk2prob.py
v_prob2berk
¶
V_PROB2BERK - Convert probability to Berksons (log-odds base 2).
v_prob2berk
¶
Convert probability to Berksons.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
p
|
array_like
|
Probability values. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
b |
ndarray
|
Corresponding Berkson values. |
d |
ndarray
|
Corresponding derivatives dP/dB. |
Source code in pyvoicebox/v_prob2berk.py
v_gausprod
¶
V_GAUSPROD - Calculate the product of Gaussians.
v_gausprod
¶
Calculate the product of n d-dimensional multivariate Gaussians.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
m
|
array_like
|
Means, shape (d, n) - each column is the mean of one Gaussian. |
required |
c
|
array_like
|
Covariance matrices. Can be: - (d, d, n) for full covariance - (d, n) for diagonal - (n,) for c*I - omitted for I |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
g |
float
|
Log gain (= log(integral)). |
u |
ndarray
|
Mean vector (d, 1). |
k |
ndarray
|
Covariance matrix (same form as input). |
Source code in pyvoicebox/v_gausprod.py
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | |
v_histndim
¶
V_HISTNDIM - Generate an n-dimensional histogram.
v_histndim
¶
Generate an n-dimensional histogram.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
array_like
|
Input data, shape (m, d). |
required |
b
|
array_like
|
Histogram bin specification, shape (3, d) or (1, d) or (3, 1). Row 0: number of bins; Row 1: min of first bin; Row 2: max of last bin. Default: 10 bins per dimension. |
None
|
mode
|
str
|
'p' to scale as probabilities; 'z' for zero base in 2D plot. |
''
|
Returns:
| Name | Type | Description |
|---|---|---|
v |
ndarray
|
Histogram counts (or probabilities if 'p' in mode). |
t |
list of ndarray
|
Bin boundary values for each dimension. |
Source code in pyvoicebox/v_histndim.py
v_pdfmoments
¶
V_PDFMOMENTS - Convert between central moments, raw moments and cumulants.
v_pdfmoments
¶
Convert between central moments, raw moments and cumulants.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
t
|
str
|
Input/output type string. Lower case = input type, upper case = output type. 'm'/'M' = central moments, 'r'/'R' = raw moments, 'k'/'K' = cumulants. |
required |
m
|
array_like
|
Vector of input moments; m[0] is always the mean. |
required |
b
|
float
|
Output moments are for a*x + b (default 0). |
0
|
a
|
float
|
Output moments are for a*x + b (default 1). |
1
|
Returns:
| Name | Type | Description |
|---|---|---|
c |
ndarray
|
Central moments (or as determined by 'R' or 'K' options). |
r |
ndarray
|
Raw moments. |
k |
ndarray
|
Cumulants. |
Source code in pyvoicebox/v_pdfmoments.py
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 | |
v_besselratio
¶
V_BESSELRATIO - Bessel function ratio I_{v+1}(x)/I_v(x).
v_besselratio
¶
Calculate the Bessel function ratio besseli(v+1,x)/besseli(v,x).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
array_like
|
Bessel function argument. |
required |
v
|
int
|
Denominator Bessel function order (default 0). |
0
|
p
|
int
|
Digits precision <=14 (default 5). |
5
|
Returns:
| Name | Type | Description |
|---|---|---|
y |
ndarray
|
Value of the Bessel function ratio. |
Source code in pyvoicebox/v_besselratio.py
v_besselratioi
¶
V_BESSELRATIOI - Inverse Bessel function ratio.
v_besselratioi
¶
Calculate the inverse Bessel function ratio.
Given r = besseli(v+1,s)/besseli(v,s), find s.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
r
|
array_like
|
Value of the Bessel function ratio. |
required |
v
|
int
|
Denominator Bessel function order (default 0, must be 0 for now). |
0
|
p
|
int
|
Digits precision <=13 (default 5). |
5
|
Returns:
| Name | Type | Description |
|---|---|---|
s |
ndarray
|
Value of s such that r = besseli(v+1,s)/besseli(v,s). |
Source code in pyvoicebox/v_besselratioi.py
v_besratinv0
¶
V_BESRATINV0 - Inverse of Modified Bessel Ratio I1(k)/I0(k).
v_besratinv0
¶
Inverse function of the Modified Bessel Ratio I1(k)/I0(k).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
r
|
array_like
|
Input argument in range [0,1]. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
k |
ndarray
|
Output satisfying r = I1(k)/I0(k). |