tts_urls/lib.rs
1#![deny(missing_docs)]
2
3//! This crate formats URLs to retrieve audio from TTS (text to speech) services like Google Translate or VoiceRSS.
4//!
5//! # Examples
6//! Google Translate TTS:
7//! ```
8//! let url = tts_urls::google_translate::url("Hello, World!", "en");
9//! assert_eq!(url, "https://translate.google.com/translate_tts?ie=UTF-8&q=Hello%2C%20World%21&tl=en&tk=418730.60457&client=webapp");
10//! ```
11//!
12//! VoiceRSS:
13//! ```
14//! use tts_urls::voicerss::{VoiceRSSOptions, Language, Codec};
15//! let key = "key";
16//!
17//! let url = VoiceRSSOptions::new()
18//! .language(Language::German)
19//! .audio_format("32khz_16bit_stereo")
20//! .codec(Codec::MP3)
21//! .url(key, "Hallo Welt!");
22//! assert_eq!(url, "http://api.voicerss.org/?key=key&hl=de-de&c=MP3&f=32khz_16bit_stereo&src=Hallo%20Welt%21");
23//! ```
24
25/// google translate tts
26pub mod google_translate;
27/// VoiceRSS <http://www.voicerss.org/>
28pub mod voicerss;
29
30// https://en.wikipedia.org/wiki/Percent-encoding#Types_of_URI_characters
31// unreserved characters are 'a..zA..Z-_.~'
32const ENCODE_SET: &'static percent_encoding::AsciiSet = &percent_encoding::NON_ALPHANUMERIC
33 .remove(b'-')
34 .remove(b'_')
35 .remove(b'.')
36 .remove(b'~');