KayPENTAX Disordered Voice Database Reader module


Keywords
multimedia
License
xpp
Install
pip install kpdvdb==0.6.2

Documentation

kpdvdb: KayPENTAX Disordered Voice Database Reader

PyPI PyPI - Status PyPI - Python Version GitHub

This Python module provides functions to interact with KayPENTAX Disordered Voice Database

This module DOES NOT provide the database itself. KayPENTAX Disordered Voice Database is a (discontinued) commercial product, an addon option to KayPENTAX's Computerized Speech Lab (CSL).

For faster access to the data, copying the database files from the CD-ROM to a local hard drive is highly recommended.

Install

pip install kpdvdb

Use

from kpdvdb import KPDVDB

# to initialize (must call this once in every Python session)
kpdvdb = KPDVDB('<path to CDROM drive or root directory of the database>')

# to list all the data fields
print(kpdvdb.get_fields())

# to list categorical fields' unique values
print(kpdvdb.get_sexes()) # genders
print(kpdvdb.get_locations()) # pathology sites
print(kpdvdb.get_natlangs()) # native languages
print(kpdvdb.get_origins()) # races
print(kpdvdb.get_diagnoses()) # diagnoses

# to get a copy of the full database
df = kpdvdb.query(include_diagnoses=True)

# to get age, gender, diagnoses, and MDVP measures of non-smoking
# subjects with polyp or paralysis, F0 between 100 and 300 Hz
df = kpdvdb.query(["AGE","SEX","DIAGNOSES","MDVP"],
                  DIAGNOSES=["vocal fold polyp","paralysis"],
                  Fo=[100,300],
                  SMOKE=False)

# to get the list of AH NSP files of normal subjects
nspfiles = kpdvdb.get_files('ah',NORM=True)

# to iterate over 'rainbow passage' acoustic data of female pathological subjects
for fs, x, info in kpdvdb.iter_data('rainbow',
                                    auxdata_fields=["AGE","SEX"],
                                    NORM=False, SEX="F"):
  # run the acoustic data through your analysis function, get measurements
  params = my_analysis_function(fs, x)

  # log the measurements along with the age and gender info
  my_logger.log_outcome(*info, *params)

NOTE

Because the database is not public, this module cannot be tested for various platforms via GitHub Action. If you encounter any issues, please post it on GitHub.