API reference¶
Synthesis Classes¶
-
class
voxpopuli.Phoneme(name: str, duration: int, pitch_mods: List[Tuple[int, int]] = None)¶ Stores the phonetic data for a single phoneme:
- the name of the phoneme in SAMPA notation (depends on the language)
- its duration (in milliseconds)
- its pitch modifications (as a list of (percentage, pitch) tuples)
-
__init__(name: str, duration: int, pitch_mods: List[Tuple[int, int]] = None)¶ Initialize self. See help(type(self)) for accurate signature.
-
__str__()¶ Return str(self).
-
classmethod
from_str(pho_str)¶ Instanciates a phoneme from a line of espeak’s phoneme output.
-
set_from_pitches_list(pitch_list: List[int])¶ Set pitches variations from a list of frequencies. The pitch variation are set to be equidistant from one another.
-
class
voxpopuli.PhonemeList(blocks: Union[voxpopuli.phonemes.Phoneme, Iterable[voxpopuli.phonemes.Phoneme]])¶ A list of phonemes. Can be printed into a .pho string formatted file
-
__add__(other: voxpopuli.phonemes.PhonemeList)¶ Concatenate two
PhonemeList
-
__delitem__(index: int)¶ Remove a phoneme at index i in
PhonemeList
-
__getitem__(index: int) → voxpopuli.phonemes.Phoneme¶ Get phoneme in
PhonemeList
-
__init__(blocks: Union[voxpopuli.phonemes.Phoneme, Iterable[voxpopuli.phonemes.Phoneme]])¶ Initialize self. See help(type(self)) for accurate signature.
-
__iter__() → Iterable[voxpopuli.phonemes.Phoneme]¶ Iterate over
PhonemeList
-
__len__() → int¶ Number of phonemes in
PhonemeList
-
__setitem__(index: int, value: voxpopuli.phonemes.Phoneme)¶ Set phoneme in
PhonemeListat index i
-
__str__()¶ Return str(self).
-
append(value: voxpopuli.phonemes.Phoneme)¶ Append a phoneme to
PhonemeList
-
classmethod
from_pho_str(pho_str_list: str)¶ Build a
PhonemeListfrom a string corresponding to a .pho file typically produced by Espeak.
-
insert(index, value: voxpopuli.phonemes.Phoneme)¶ Insert a phoneme at index i in
PhonemeList
-
phonemes_str¶ Output the
PhonemeListas a .pho compatible string.
-
-
class
voxpopuli.Voice(speed: int = 160, pitch: int = 50, lang: str = 'fr', voice_id: int = None, volume: float = None)¶ -
exception
InvalidVoiceParameters¶
-
__init__(speed: int = 160, pitch: int = 50, lang: str = 'fr', voice_id: int = None, volume: float = None)¶ All parameters are optional, but it’s still advised that you pick a language, else it will default to French, which is a default to the most beautiful language on earth. Any invalid parameter will raise an InvalidVoiceParameter exception.
-
classmethod
get_voices_for_lang(lang: str) → List[voxpopuli.main.Voice]¶ Get instances of all the available voices for a particular language
-
classmethod
list_voice_ids() → Dict[str, List[T]]¶ Returns a dictionary listing available voice id’s for each language
-
say(speech: Union[voxpopuli.phonemes.PhonemeList, str])¶ Renders a string or a
PhonemeListobject to audio, then plays it using the PyAudio lib
-
to_audio(speech: Union[voxpopuli.phonemes.PhonemeList, str], filename=None) → bytes¶ Renders a str or a
PhonemeListto a wave byte object. If a filename is specified, it saves the audio file to wave as well Throws a InvalidVoiceParameters if the voice isn’t found
-
to_phonemes(text: str) → voxpopuli.phonemes.PhonemeList¶ Renders a str to a
`PhonemeListobject.
-
exception
SAMPA Phoneme Sets¶
-
class
voxpopuli.FrenchPhonemes¶ -
CONSONANTS= {'H', 'J', 'N', 'R', 'S', 'Z', 'b', 'd', 'f', 'g', 'j', 'k', 'l', 'm', 'n', 'p', 's', 't', 'v', 'w', 'z'}¶
-
FRICATIVES= {'S', 'Z', 'f', 'j', 's', 'v', 'z'}¶
-
INDETERMINATE_WOVELS= {'&/', 'A/', 'E/', 'O/', 'U~/'}¶
-
LIQUIDS= {'H', 'R', 'j', 'l', 'w'}¶
-
NASAL_CONSONANTS= {'J', 'N', 'm', 'n'}¶
-
NASAL_WOVELS= {'9~', 'a~', 'e~', 'o~'}¶
-
ORALS= {'2', '9', '@', 'A', 'E', 'O', 'a', 'e', 'i', 'o', 'u', 'y'}¶
-
PLOSIVES= {'b', 'd', 'g', 'k', 'p', 't'}¶
-
STRESSES= {'"', '%', "'", ':', '`'}¶
-
VOWELS= {'&/', '2', '9', '9~', '@', 'A', 'A/', 'E', 'E/', 'O', 'O/', 'U~/', 'a', 'a~', 'e', 'e~', 'i', 'o', 'o~', 'u', 'y'}¶
-
all= {'"', '%', '&/', "'", '2', '9', '9~', ':', '@', 'A', 'A/', 'E', 'E/', 'H', 'J', 'N', 'O', 'O/', 'R', 'S', 'U~/', 'Z', '`', 'a', 'a~', 'b', 'd', 'e', 'e~', 'f', 'g', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'o~', 'p', 's', 't', 'u', 'v', 'w', 'y', 'z'}¶
-
-
class
voxpopuli.BritishEnglishPhonemes¶ -
ADDITIONALS= {'?', 'x'}¶
-
AFFRICATES= {'dZ', 'tS'}¶
-
CENTRAL= {'@'}¶
-
CHECKED= {'I', 'Q', 'U', 'V', 'e', '{'}¶
-
CONSONANTS= {'D', 'N', 'S', 'T', 'Z', 'b', 'd', 'dZ', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'tS', 'v', 'w', 'z'}¶
-
FREE= {'3:', '@U', 'A:', 'I@', 'O:', 'OI,', 'U@', 'aI', 'aU,', 'e@', 'eI', 'i:', 'u:'}¶
-
FRICATIVES= {'D', 'S', 'T', 'Z', 'f', 'h', 's', 'v', 'z'}¶
-
GLIDES= {'j', 'w'}¶
-
INDETERMINATE= {'i', 'u'}¶
-
LIQUIDS= {'l', 'r'}¶
-
NASALS= {'N', 'm', 'n'}¶
-
PLOSIVES= {'b', 'd', 'g', 'k', 'p', 't'}¶
-
SONORANTS= {'N', 'j', 'l', 'm', 'n', 'r', 'w'}¶
-
STRESSES= {'"', '%', "'", ':', '`'}¶
-
VOWELS= {'3:', '@', '@U', 'A:', 'I', 'I@', 'O:', 'OI,', 'Q', 'U', 'U@', 'V', 'aI', 'aU,', 'e', 'e@', 'eI', 'i', 'i:', 'u', 'u:', '{'}¶
-
all= {'"', '%', "'", '3:', ':', '?', '@', '@U', 'A:', 'D', 'I', 'I@', 'N', 'O:', 'OI,', 'Q', 'S', 'T', 'U', 'U@', 'V', 'Z', '`', 'aI', 'aU,', 'b', 'd', 'dZ', 'e', 'e@', 'eI', 'f', 'g', 'h', 'i', 'i:', 'j', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'tS', 'u', 'u:', 'v', 'w', 'x', 'z', '{'}¶
-
-
class
voxpopuli.AmericanEnglishPhonemes¶ -
CONSONANTS= {'D', 'N', 'S', 'T', 'Z', 'b', 'd', 'dZ', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'tS', 'v', 'w', 'z'}¶
-
STRESSES= {'"', '%', "'", ':', '`'}¶
-
VOWELS= {'3`', '@', '@`', 'A', 'E', 'I', 'O', 'OI', 'U', 'V', 'aI', 'aU', 'e', 'i', 'o', 'u', '{'}¶
-
all= {'"', '%', "'", '3`', ':', '@', '@`', 'A', 'D', 'E', 'I', 'N', 'O', 'OI', 'S', 'T', 'U', 'V', 'Z', '`', 'aI', 'aU', 'b', 'd', 'dZ', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'tS', 'u', 'v', 'w', 'z', '{'}¶
-
-
class
voxpopuli.SpanishPhonemes¶ -
ACCENTS= {'"'}¶
-
AFFRICATES= {'jj', 'tS'}¶
-
CONSONANTS= {'B', 'D', 'G', 'J', 'L', 'T', 'b', 'd', 'f', 'g', 'jj', 'k', 'l', 'm', 'n', 'p', 'r', 'rr', 's', 't', 'tS', 'x'}¶
-
FRICATIVES= {'B', 'D', 'G', 'T', 'f', 's', 'x'}¶
-
LIQUIDS= {'L', 'l', 'r', 'rr'}¶
-
NASAL= {'J', 'm', 'n'}¶
-
PLOSIVES= {'b', 'd', 'g', 'k', 'p', 't'}¶
-
STRESSES= {'"', '%', "'", ':', '`'}¶
-
VOWELS= {'a', 'e', 'i', 'o', 'u'}¶
-
all= {'"', '%', "'", ':', 'B', 'D', 'G', 'J', 'L', 'T', '`', 'a', 'b', 'd', 'e', 'f', 'g', 'i', 'jj', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 'rr', 's', 't', 'tS', 'u', 'x'}¶
-
-
class
voxpopuli.GermanPhonemes¶ -
AFFRICATES= {'dZ', 'pf', 'tS', 'ts'}¶
-
CENTRING_DIPHTONGS= {'2:6', '6', '96', 'E6', 'E:6', 'I6', 'O6', 'U6', 'Y6', 'a6', 'a:6', 'e:6', 'i:6', 'o:6', 'u:6', 'y:6'}¶
-
CHECKED= {'9', 'E', 'I', 'O', 'U', 'Y', 'a'}¶
-
CONSONANTS= {'C', 'N', 'R', 'S', 'Z', 'b', 'd', 'dZ', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'pf', 's', 't', 'tS', 'ts', 'v', 'x', 'z'}¶
-
DIPHTONGS= {'OY', 'aI', 'aU'}¶
-
FRICATIVES= {'C', 'S', 'Z', 'f', 'h', 'j', 's', 'v', 'x', 'z'}¶
-
GLOTTAL_STOP= '?'¶
-
PLOSIVES= {'b', 'd', 'g', 'k', 'p', 't'}¶
-
PURE= {'2:', 'E:', 'a:', 'e:', 'i:', 'o:', 'u:', 'y:'}¶
-
SCHWA= {'@'}¶
-
SONORANTS= {'N', 'R', 'l', 'm', 'n'}¶
-
STRESSES= {'"', '%', "'", ':', '`'}¶
-
VOWELS= {'2:', '9', 'E', 'E:', 'I', 'O', 'OY', 'U', 'Y', 'a', 'a:', 'aI', 'aU', 'e:', 'i:', 'o:', 'u:', 'y:'}¶
-
all= {'"', '%', "'", '2:', '2:6', '6', '9', '96', ':', '@', 'C', 'E', 'E6', 'E:', 'E:6', 'I', 'I6', 'N', 'O', 'O6', 'OY', 'R', 'S', 'U', 'U6', 'Y', 'Y6', 'Z', '`', 'a', 'a6', 'a:', 'a:6', 'aI', 'aU', 'b', 'd', 'dZ', 'e:', 'e:6', 'f', 'g', 'h', 'i:', 'i:6', 'j', 'k', 'l', 'm', 'n', 'o:', 'o:6', 'p', 'pf', 's', 't', 'tS', 'ts', 'u:', 'u:6', 'v', 'x', 'y:', 'y:6', 'z'}¶
-
-
class
voxpopuli.ItalianPhonemes¶ -
ACCENTS= {''}¶
-
AFFRICATES= {'dZ', 'ddZ', 'ddz', 'dz', 'tS', 'ts', 'ttS', 'tts'}¶
-
CONSONANTS= {'J', 'JJ', 'L', 'LL', 'S', 'SS', 'b', 'bb', 'd', 'dZ', 'dd', 'ddZ', 'ddz', 'dz', 'f', 'ff', 'g', 'gg', 'k', 'kk', 'l', 'll', 'm', 'mm', 'n', 'nn', 'p', 'pp', 'r', 'rr', 's', 'ss', 't', 'tS', 'ts', 'tt', 'ttS', 'tts', 'v', 'vv', 'z'}¶
-
FRICATIVES= {'S', 'SS', 'f', 'ff', 's', 'ss', 'v', 'vv', 'z'}¶
-
GEMINATE_AFFRICATES= {'dZ', 'ddZ', 'ddz', 'dz', 'tS', 'ts', 'ttS', 'tts'}¶
-
GEMINATE_FRICATIVES= {'SS', 'ff', 'ss', 'vv'}¶
-
GEMINATE_LIQUIDS= {'LL', 'll', 'rr'}¶
-
GEMINATE_NASAL= {'JJ', 'mm', 'nn'}¶
-
GEMINATE_PLOSIVES= {'bb', 'dd', 'gg', 'kk', 'pp', 'tt'}¶
-
LIQUIDS= {'L', 'LL', 'l', 'll', 'r', 'rr'}¶
-
NASAL= {'J', 'JJ', 'm', 'mm', 'n', 'nn'}¶
-
PLOSIVES= {'b', 'bb', 'd', 'dd', 'g', 'gg', 'k', 'kk', 'p', 'pp', 't', 'tt'}¶
-
SEMIVOWELS= {'j', 'w'}¶
-
SINGLE_AFFRICATES= {'dZ', 'ddZ', 'ddz', 'dz', 'tS', 'ts', 'ttS', 'tts'}¶
-
SINGLE_FRICATIVES= {'S', 'f', 's', 'v', 'z'}¶
-
SINGLE_LIQUIDS= {'L', 'l', 'r'}¶
-
SINGLE_NASAL= {'J', 'm', 'n'}¶
-
SINGLE_PLOSIVES= {'b', 'd', 'g', 'k', 'p', 't'}¶
-
VOWELS= {'E', 'O', 'a', 'e', 'i', 'o', 'u'}¶
-
-
class
voxpopuli.PortuguesePhonemes¶ -
CONSONANTS= {'J', 'L', 'R', 'S', 'Z', 'b', 'd', 'f', 'g', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'v', 'z'}¶
-
FRICATIVES= {'S', 'Z', 'f', 's', 'v', 'z'}¶
-
LIQUIDS= {'L', 'R', 'l', 'r'}¶
-
NASALS= {'J', 'm', 'n'}¶
-
PLOSIVES= {'b', 'd', 'g', 'k', 'p', 't'}¶
-
STRESSES= {'"', '%', "'", ':', '`'}¶
-
VOWELS= {'6', '6~', '6~j~', '@', 'E', 'O', 'a', 'aj', 'aw', 'e', 'e~', 'i', 'i~', 'o', 'o~', 'u', 'u~'}¶
-
all= {'"', '%', "'", '6', '6~', '6~j~', ':', '@', 'E', 'J', 'L', 'O', 'R', 'S', 'Z', '`', 'a', 'aj', 'aw', 'b', 'd', 'e', 'e~', 'f', 'g', 'i', 'i~', 'k', 'l', 'm', 'n', 'o', 'o~', 'p', 'r', 's', 't', 'u', 'u~', 'v', 'z'}¶
-
-
class
voxpopuli.GreekPhonemes¶ -
AFFRICATES= {'dz', 'ts'}¶
-
CONSONANTS= {'C', 'D', 'G', 'T', 'b', 'c', 'd', 'dz', 'f', 'g', 'gj', 'j', 'jj', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'ts', 'v', 'x', 'z'}¶
-
FRICATIVES= {'D', 'G', 'T', 'f', 's', 'v', 'x', 'z'}¶
-
LIQUIDS= {'l', 'r'}¶
-
NASALS= {'m', 'n'}¶
-
PALATALS= {'C', 'c', 'gj', 'jj'}¶
-
PLOSIVES= {'b', 'd', 'g', 'k', 'p', 't'}¶
-
SEMIVOWEL= {'j'}¶
-
STRESSES= {'"', '%', "'", ':', '`'}¶
-
VOWELS= {' a', ' e', ' o', ' u', 'i'}¶
-
all= {' a', ' e', ' o', ' u', '"', '%', "'", ':', 'C', 'D', 'G', 'T', '`', 'b', 'c', 'd', 'dz', 'f', 'g', 'gj', 'i', 'j', 'jj', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'ts', 'v', 'x', 'z'}¶
-
-
class
voxpopuli.ArabicPhonemes¶ -
CONSONANTS= {'?', '?`', 'D', 'D`', 'G', 'S', 'T', 'X\\', 'Z', 'b', 'd', 'd`', 'f', 'g', 'h', 'j', 'k', 'l', 'l`', 'm', 'n', 'p', 'q', 'r', 's', 's`', 't', 't`', 'v', 'w', 'x', 'z'}¶
-
FRICATIVES= {'?`', 'D', 'D`', 'G', 'S', 'T', 'X\\', 'Z', 'f', 'h', 's', 's`', 'v', 'x', 'z'}¶
-
LATERAL= {'l', 'l`'}¶
-
NASALS= {'m', 'n'}¶
-
PLOSIVES= {'?', 'b', 'd', 'd`', 'g', 'k', 'p', 'q', 't', 't`'}¶
-
SEMIVOWELS= {'j', 'w'}¶
-
STRESSES= {'"', '%', "'", ':', '`'}¶
-
TRILL= {'r'}¶
-
VOWELS= {'a', 'a:', 'i', 'i:', 'u', 'u:'}¶
-
all= {'"', '%', "'", ':', '?', '?`', 'D', 'D`', 'G', 'S', 'T', 'X\\', 'Z', '`', 'a', 'a:', 'b', 'd', 'd`', 'f', 'g', 'h', 'i', 'i:', 'j', 'k', 'l', 'l`', 'm', 'n', 'p', 'q', 'r', 's', 's`', 't', 't`', 'u', 'u:', 'v', 'w', 'x', 'z'}¶
-