Caution

You're reading an old version of this documentation. If you want up-to-date information, please have a look at 0.10.0.

# librosa.sequence.transition_loop

librosa.sequence.transition_loop(n_states, prob)[source]

Construct a self-loop transition matrix over `n_states`.

The transition matrix will have the following properties:

• `transition[i, i] = p` for all `i`

• `transition[i, j] = (1 - p) / (n_states - 1)` for all `j != i`

This type of transition matrix is appropriate when states tend to be locally stable, and there is no additional structure between different states. This is primarily useful for de-noising frame-wise predictions.

Parameters:
n_statesint > 1

The number of states

probfloat in [0, 1] or iterable, length=n_states

If a scalar, this is the probability of a self-transition.

If a vector of length `n_states`, `p[i]` is the probability of self-transition in state `i`

Returns:
transitionnp.ndarray [shape=(n_states, n_states)]

The transition matrix

Examples

```>>> librosa.sequence.transition_loop(3, 0.5)
array([[0.5 , 0.25, 0.25],
[0.25, 0.5 , 0.25],
[0.25, 0.25, 0.5 ]])
```
```>>> librosa.sequence.transition_loop(3, [0.8, 0.5, 0.25])
array([[0.8  , 0.1  , 0.1  ],
[0.25 , 0.5  , 0.25 ],
[0.375, 0.375, 0.25 ]])
```