Skip to main content

A Media Toolkit. Text-to-speech is currently available.

Project description

Media

A Media Toolkit.

Text-to-speech is currently available.

Other features will be developed in the future.

Thanks for Microsoft Azure!

Release Note

  • 0.1.4 - 0.1.6: Fixed some issues.

  • 0.1.3:

    • Added phonemes to improve pronunciation.
    • Updated the documentation.
  • 0.1.2:

    • Added a link to the official site (Azure) to get the key.
    • Fixed some issues.
  • 0.1.1: Text-to-speech is currently available.

Quick Start

Get the keys

See "Get the keys for your resource - Azure"

Text-to-speech

from media import Voice

text = "One Piece! Dragon Ball! Doraemon! Naruto!"
voice = Voice("YourSubscriptionKey", "YourServiceRegion")
# use English
voice.speak(text)
# use Japanese
voice.speak(text, lang=Voice.LANG.JA_JP, voice_name=Voice.NAME.FEMALE.JA_JP_NANAMI)
# Save the voice file to the local
voice.save(text)

Use phonemes to improve pronunciation

from media import Voice, SSML

voice = Voice("YourSubscriptionKey", "YourServiceRegion")
ssml = SSML()
# If you want to modify the phoneme of a word, add '[]' in text
ssml.voice = {
    "text": "His name is Mike [Zhou]",
    "phonemes": [{
        "word": "Zhou",
        "alphabet": "ups",  # default: sapi
        "ph": "JH AU",
    }]
}
voice.speak(ssml)

The values ​​of alphabet and ph can refer to here, see: "Use phonemes to improve pronunciation - Azure"

Error detection

success = voice.speak()
if not success:
    # do something...
    print(voice.error)
    # do something...

View the generated XML for SSML

from media import SSML

ssml = SSML()
# for human
print(ssml)
# for program
ssml.dump()

Full Example

Text-to-speech, in a different tone.

from media import Voice, SSML

voice = Voice("YourSubscriptionKey", "YourServiceRegion")
ssml = SSML(lang=SSML.LANG.ZH_CN, voice_name=SSML.NAME.FEMALE.ZH_CN_XIAO_XUAN)
ssml.voice = "啊?"
ssml.voice = {
    "text": "这是可以说的吗?",
    "role": SSML.ROLE.YOUNG_ADULT_FEMALE,
    "style": SSML.STYLE.CHEERFUL,
    "rate": SSML.RATE.MEDIUM,
}
ssml.voice = {
    "text": "啊,可以可以",
    "name": SSML.NAME.FEMALE.ZH_CN_XIAO_MO,
    "style": SSML.STYLE.FEARFUL,
    "role": SSML.ROLE.OLDER_ADULT_FEMALE,
    "degree": "2",
}
ssml.voice = {
    "text": "没事没事",
    "name": SSML.NAME.FEMALE.ZH_CN_XIAO_MO,
    "style": SSML.STYLE.SAD,
    "role": SSML.ROLE.OLDER_ADULT_FEMALE,
    "degree": "2",
    "rate": SSML.RATE.FAST,
}
# It will play the generated speech
voice.speak(ssml)

If you want to save:

voice.save(ssml)

If you want to save and customize the name or location:

voice.save(ssml, path="这是可以说的吗.mp3")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

media-0.1.6.tar.gz (8.5 kB view hashes)

Uploaded Source

Built Distribution

media-0.1.6-py3-none-any.whl (8.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page