kamo-naoyuki / pySIIB

A python implementation of Speech intelligibility in bits (SIIB)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pySIIB: A python implementation of speech intelligibility in bits (SIIB)

CI Build Status codecov

SIIB is an intrusive instrumental intelligibility metric based on infortmation theory. This Python implementation of SIIB is ported from the author's matlab codes: https://stevenvankuyk.com/matlab_code/. The behaviour is almost compatible of original codes.

Install

pip install git+https://github.com/kamo-naoyuki/pySIIB.git

Usage

from pysiib import SIIB
from scipy.io import wavfile

fs, x = wavfile.read("clean.wav")
fs, y = wavfile.read("distorted.wav")

# SIIB with MI function in C-implementation (this is used in [1],[2])
SIIB(x, y, fs)
# SIIB with MI function in python implementation
SIIB(x, y, fs, use_MI_Kraskov=False)
# SIIB^Gauss
SIIB(x, y, fs, gauss=True)

There are two version metrics called as SIIB [1] and SIIB^Gauss [2]. SIIB^Gauss has similar performance to SIIB, but takes less time to compute.

IMPORTANT

  • SIIB assumes that x and y are time-aligned.
  • SIIB may not be reliable for stimuli with short durations(e.g., less than 20 seconds). Note that longer stimuli can be created by concatenating short stimuli together.

Demo

pip install matplotlib  # If you don't have
cd demo
python demo.py

Reference

  • [1] S. Van Kuyk, W. B. Kleijn, and R. C. Hendriks, ‘An instrumental intelligibility metric based on information theory’, IEEE Signal Processing Letters, 2018.
  • [2] S. Van Kuyk, W. B. Kleijn, and R. C. Hendriks, ‘An evaluation of intrusive instrumental intelligibility metrics’, IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2018.

Links for the implementation of objective measurement for speech intelligibility/quality

About

A python implementation of Speech intelligibility in bits (SIIB)

License:GNU General Public License v3.0


Languages

Language:C 68.6%Language:MATLAB 15.9%Language:Python 15.5%