SkillAgentSearch skills...

My Voice Analysis

My-Voice Analysis is a Python library for the analysis of voice (simultaneous speech, high entropy) without the need of a transcription. It breaks utterances and detects syllable boundaries, fundamental frequency contours, and formants.

Install / Use

npx skills add Shahabks/my-voice-analysis

Installs into whichever agent you are using.

About this skill

Quality Score

0/100

Supported Platforms

Universal

README

GitHub stars GitHub forks

myspsolution.praat has been revised please upload the new version on the master branch, my-voice-analysis setup.py and ini.py have been revised too. my-voice-analysis PYPI also has been upgraded. March 2019

myprosody package includes all my-voice-analysis' functions plus new functions which you might consider to use instead. The latest myproody update is available here, in Github as well as PYPI, the python library.

NOTE:

1- Both My-Voice-Analysis and Myprosody work on Python 3.7 
2- If you install My-Voice-Analysis through PyPi, please use: 
      mysp=__import__("my-voice-analysis") instead of import myspsolution as mysp
3- It it better to keep the folder names as single entities for instance "Name_Folder" or "NameFolder" without space in the dirctoy path

my-voice-analysis

My-Voice Analysis is a Python library for the analysis of voice (simultaneous speech, high entropy) without the need of a transcription. It breaks utterances and detects syllable boundaries, fundamental frequency contours, and formants. Its built-in functions recognise and measures

  1. gender recognition,
  2. speech mood (semantic analysis),
  3. pronunciation posterior score
  4. articulation-rate,
  5. speech rate,
  6. filler words,
  7. f0 statistics,

The library was developed based upon the idea introduced by Nivja DeJong and Ton Wempe [1], Paul Boersma and David Weenink [2], Carlo Gussenhoven [3], S.M Witt and S.J. Young [4] and Yannick Jadoul [5]. Peaks in intensity (dB) that are preceded and followed by dips in intensity are considered as potential syllable cores. My-Voice Analysis is unique in its aim to provide a complete quantitative and analytical way to study acoustic features of a speech. Moreover, those features could be analysed further by employing Python’s functionality to provide more fascinating insights into speech patterns. This library is for Linguists, scientists, developers, speech and language therapy clinics and researchers.
Please note that My-Voice Analysis is currently in initial state though in active development. While the amount of functionality that is currently present is not huge, more will be added over the next few months.

Installation

my-voice-analysis can be installed like any other Python library, using (a recent version of) the Python package manager pip, on Linux, macOS, and Windows:

                                    pip install my-voice-analysis

or, to update your installed version to the latest release:

                                     pip install -u my-voice-analysis

NOTE:

After installing My-Voice-Analysis, copy the file myspsolution.praat from

                                      https://github.com/Shahabks/my-voice-analysis  

and save in the directory where you will save audio files for analysis.

Audio files must be in *.wav format, recorded at 44 kHz sample frame and 16 bits of resolution.

Example usage

Gender recognition and mood of speech: Function myspgend(p,c)

                [in]  import myspsolution as mysp
                     
                     p="Walkers" # Audio File title
                     c=r"C:\Users\Shahab\Desktop\Mysp" # Path to the Audio_File directory (Python 3.7)
                     mysp.myspgend(p,c)
                
                [out] a female, mood of speech: Reading, p-value/sample size= :0.00 5

Pronunciation posteriori probability score percentage: Function mysppron(p,c)

                [in]   import myspsolution as mysp

                       p="Walkers" # Audio File title
                       c=r"C:\Users\Shahab\Desktop\Mysp" # Path to the Audio_File directory (Python 3.7)
                       mysp.mysppron(p,c)
                       
               [out]   Pronunciation_posteriori_probability_score_percentage= :85.00

Detect and count number of syllables: Function myspsyl(p,c)

                 [in]   import myspsolution as mysp

                        p="Walkers" # Audio File title
                        c=r"C:\Users\Shahab\Desktop\Mysp" # Path to the Audio_File directory (Python 3.7)
                        mysp.myspsyl(p,c)
                        
                [out]   number_ of_syllables= 154

Detect and count number of fillers and pauses: Function mysppaus(p,c)

                 [in]   import myspsolution as mysp

                        p="Walkers" # Audio File title
                        c=r"C:\Users\Shahab\Desktop\Mysp" # Path to the Audio_File directory (Python 3.7)
                        mysp.mysppaus(p,c)
                        
                [out]   number_of_pauses= 22

Measure the rate of speech (speed): Function myspsr(p,c)

                [in]   import myspsolution as mysp

                        p="Walkers" # Audio File title
                        c=r"C:\Users\Shahab\Desktop\Mysp" # Path to the Audio_File directory (Python 3.7)
                        mysp.myspsr(p,c)
                
                [out]   rate_of_speech= 3 # syllables/sec original duration

Measure the articulation (speed): Function myspatc(p,c)

                 [in]   import myspsolution as mysp

                        p="Walkers" # Audio File title
                        c=r"C:\Users\Shahab\Desktop\Mysp" # Path to the Audio_File directory (Python 3.7)
                        mysp.myspatc(p,c)
                        
                [out]  articulation_rate= 5 # syllables/sec speaking duration

Measure speaking time (excl. fillers and pause): Function myspst(p,c)

                 [in]   import myspsolution as mysp

                        p="Walkers" # Audio File title
                        c=r"C:\Users\Shahab\Desktop\Mysp" # Path to the Audio_File directory (Python 3.7)
                        mysp.myspst(p,c)
           
                [out]   speaking_duration= 31.6 # sec only speaking duration without pauses

Measure total speaking duration (inc. fillers and pauses): Function myspod(p,c)

                 [in]   import myspsolution as mysp

                        p="Walkers" # Audio File title
                        c=r"C:\Users\Shahab\Desktop\Mysp" # Path to the Audio_File directory (Python 3.7)
                        mysp.myspod(p,c)
                        
                [out]   original_duration= 49.2 # sec total speaking duration with pauses

Measure ratio between speaking duration and total speaking duration: Function myspbala(p,c)

                 [in]   import myspsolution as mysp

                        p="Walkers" # Audio File title
                        c=r"C:\Users\Shahab\Desktop\Mysp" # Path to the Audio_File directory (Python 3.7)
                        mysp.myspbala(p,c)

                [out]   balance= 0.6 # ratio (speaking duration)/(original duration)

Measure fundamental frequency distribution mean: Function myspf0mean(p,c)

                 [in]   import myspsolution as mysp

                        p="Walkers" # Audio File title
                        c=r"C:\Users\Shahab\Desktop\Mysp" # Path to the Audio_File directory (Python 3.7)
                        mysp.myspf0mean(p,c)

                 [out]  f0_mean= 212.45 # Hz global mean of fundamental frequency distribution

Measure fundamental frequency distribution SD: Function myspf0sd(p,c)

                  [in]   import myspsolution as mysp

                        p="Walkers" # Audio File title
                        c=r"C:\Users\Shahab\Desktop\Mysp" # Path to the Audio_File directory (Python 3.7)
                        mysp.myspf0sd(p,c)

                 [out]  f0_SD= 57.85 # Hz global standard deviation of fundamental frequency distribution

Measure fundamental frequency distribution median: Function myspf0med(p,c)

                  [in]   import myspsolution as mysp

                        p="Walkers" # Audio File title
                        c=r"C:\Users\Shahab\Desktop\Mysp" # Path to the Audio_File directory (Python 3.7)
                        mysp.myspf0med(p,c)

                 [out]  f0_MD= 205.7 # Hz global median of fundamental frequency distribution

Measure fundamental frequency distribution minimum: Function myspf0min(p,c)

                  [in]   import myspsolution as mysp

                        p="Walkers" # Audio File title
                        c=r"C:\Users\Shahab\Desktop\Mysp" # Path to the Audio_File directory (Python 3.7)
                        mysp.myspf0min(p,c)

                 [out]  f0_min= 77 # Hz global minimum of fundamental frequency distribution

Measure fundamental frequency distribution maximum: Function myspf0max(p,c)

                  [in]   import myspsolution as mysp

                         p="Walkers" # Audio File title
                         c=r"C:\Users\Shahab\Desktop\Mysp" # Path to the Audio_File directory (Python 3.7)
                         mysp.myspf0max(p,c)

                  [out] f0_max= 414 # Hz global maximum of fundamental frequency distribution

Measure 25th quantile fundamental frequency distribution: Function myspf0q25(p,c)

                   [in]   import myspsolution as mysp

                          p="Walkers" # Audio File title
                          c=r"C:\Users\Shahab\Desktop\Mysp" # Path to the Audio_File directory (Python 3.7)
                          mysp.myspf0q25(p,c)

                   [out]  f0_quan25= 17

Related Skills

View on GitHub
GitHub Stars342
CategoryDevelopment
Updated28d ago
Forks91

Languages

Python

Security Score

100/100

Audited on Jul 11, 2026

No findings