Changelog
2.5.4 (2024-11-10)
Bug Fixes
2.5.3 (2024-08-13)
Bug Fixes
langs: Languages added:
pt-PT
(Portuguese (Portugal)),yue
(Cantonese); languages modified:pa
(Punjabi (Gurmukhi)),pt
(Portuguese (Brazil)) (72a7e57)
2.5.2 (2024-07-20)
Bug Fixes
2.5.1 (2024-01-29)
Bug Fixes
2.5.0 (2023-12-20)
Features
2.4.0 (2023-10-03)
Features
2.3.2 (2023-04-29)
Bug Fixes
Documentation
cli: Fix older invalid example (5a860ed)
2.3.1 (2023-01-16)
Bug Fixes
2.3.0 (2022-11-21)
Features
Bug Fixes
2.2.4 (2022-03-14)
Features
Misc
2.2.3 (2021-06-17)
Features
Added Bulgarian language support (#302)
2.2.2 (2021-02-03)
Features
Adds a language fallback feature for deprecated languages to maintain compatiblity (e.g.
en-us
becomesen
). Fallback can be disabled withlang_check=False
or--nocheck
for the cli (#267)
Bugfixes
Deprecations and Removals
The following list of ‘hyphenated’ language codes no longer work and have been removed:
en-us
,en-ca
,en-uk
,en-gb
,en-au
,en-gh
,en-in
,en-ie
,en-nz
,en-ng
,en-ph
,en-za
,en-tz
,fr-ca
,fr-fr
,pt-br
,pt-pt
,es-es
,es-us
,zh-cn
,zh-tw
(#267)Removed the
gtts.get_url()
method (outdated since2.1.0
) (#270)
2.2.1 (2020-11-15)
Bugfixes
_package_rpc()
was erroneously packaging the entire text instead of tokenized part (#252)
Improved Documentation
Removes reference to automatic retrieval of languages (#250)
Misc
2.2.0 (2020-11-14)
Features
Switch to the newer Google TTS API (thanks to`@Boudewijn26! <https://github.com/pndurette/gTTS/pull/244>`_). See his great writeup for more on the methodology and why this was necessary. (#226, #232, #236, #241)
Deprecations and Removals
Removed automatic language download from the main code, which has become too unreliable & slow. Languages will still be fetched but a pre-generated list will be shipped with
gTTS
. (#233, #241, #242, #243)Because languages are now pre-generated, removed custom TLD support for language URL (which allowed to get language names in other than English) (#245)
Misc
2.1.2 (2020-11-10)
Features
Update
gTTS-token
to1.1.4
(#238)
Bugfixes
Improved Documentation
Grammar, spelling and example fixes (#227)
Misc
2.1.1 (2020-01-25)
Bugfixes
Debug mode now uses a copy of locals() to prevent RuntimeError (#213)
2.1.0 (2020-01-01)
Features
The
gtts
moduleAdded the ability to customize the Google Translate URL hostname. This is useful when
google.com
might be blocked within a network but a local or different Google host (e.g.google.cn
) is not (#143, #203):New
gTTS()
parametertld
to specify the top-level domain to use for the Google hostname, i.ehttps://translate.google.<tld>
(default:com
).Languages are also now fetched using the same customized hostname.
Pre-generated TTS API request URLs can now be obtained instead of writing an
mp3
file to disk (for example to be used in an external program):New
get_urls()
method returns the list of URLs generated bygTTS
, which can be used in lieu ofwrite_to_fp()
orsave()
.
The
gtts-cli
command-line toolOther
Added Python 3.8 support (#204)
Bugfixes
Changed default word-for-word pre-processor (
('M.', 'Monsieur')
) which would substitute any ‘m.’ for ‘monsieur’ (e.g. ‘them.’ became ‘themonsieur’) (#197)
Improved Documentation
Misc
2.0.4 (2019-08-29)
Features
gTTS is now built as a wheel package (Python 2 & 3) (#181)
Improved Documentation
Misc
2.0.3 (2018-12-15)
Features
Added new tokenizer case for ‘:’ preventing cut in the middle of a time notation (#135)
Misc
2.0.2 (2018-12-09)
Features
Added Python 3.7 support, modernization of packaging, testing and CI (#126)
Bugfixes
Fixed language retrieval/validation broken from new Google Translate page (#156)
2.0.1 (2018-06-20)
Bugfixes
Fixed an UnicodeDecodeError when installing gTTS if system locale was not utf-8 (#120)
Improved Documentation
Added Pre-processing and tokenizing > Minimizing section about the API’s 100 characters limit and how larger tokens are handled (#121)
Misc
2.0.0 (2018-04-30)
(#108)
Features
The
gtts
moduleNew logger (“gtts”) replaces all occurrences of
print()
Languages list is now obtained automatically (
gtts.lang
) (#91, #94, #106)Added a curated list of language sub-tags that have been observed to provide different dialects or accents (e.g. “en-gb”, “fr-ca”)
New
gTTS()
parameterlang_check
to disable language checking.gTTS()
now delegates thetext
tokenizing to the API request methods (i.e.write_to_fp()
,save()
), allowinggTTS
instances to be modified/reusedRewrote tokenizing and added pre-processing (see below)
New
gTTS()
parameterspre_processor_funcs
andtokenizer_func
to configure pre-processing and tokenizing (or use a 3rd party tokenizer)Error handling:
Added new exception
gTTSError
raised on API request errors. It attempts to guess what went wrong based on known information and observed behaviour (#60, #106)gTTS.write_to_fp()
andgTTS.save()
also raisegTTSError
on [gtts_token]{.title-ref} errorgTTS.write_to_fp()
raisesTypeError
whenfp
is not a file-like object or one that doesn’t take bytesgTTS()
raisesValueError
on unsupported languages (andlang_check
isTrue
)More fine-grained error handling throughout (e.g. [request failed]{.title-ref} vs. [request successful with a bad response]{.title-ref})
Tokenizer (and new pre-processors):
Rewrote and greatly expanded tokenizer (
gtts.tokenizer
)Smarter token ‘cleaning’ that will remove tokens that only contain characters that can’t be spoken (i.e. punctuation and whitespace)
Decoupled token minimizing from tokenizing, making the latter usable in other contexts
New flexible speech-centric text pre-processing
New flexible full-featured regex-based tokenizer (
gtts.tokenizer.core.Tokenizer
)New
RegexBuilder
,PreProcessorRegex
andPreProcessorSub
classes to make writing regex-powered text [pre-processors]{.title-ref} and [tokenizer cases]{.title-ref} easierPre-processors:
Re-form words cut by end-of-line hyphens
Remove periods after a (customizable) list of known abbreviations (e.g. “jr”, “sr”, “dr”) that can be spoken the same without a period
Perform speech corrections by doing word-for-word replacements from a (customizable) list of tuples
Tokenizing:
The
gtts-cli
command-line toolRewrote cli as first-class citizen module (
gtts.cli
), powered by ClickWindows support using [setuptool]{.title-ref}’s [entry_points]{.title-ref}
Better support for Unicode I/O in Python 2
All arguments are now pre-validated
New
--nocheck
flag to skip language pre-checkingNew
--all
flag to list all available languagesEither the
--file
option or the<text>
argument can be set to “-” to read fromstdin
The
--debug
flag uses logging and doesn’t pollutestdout
anymore
Bugfixes
_minimize()
: Fixed an infinite recursion loop that would occur when a token started with the miminizing delimiter (i.e. a space) (#86)_minimize()
: Handle the case where a token of more than 100 characters did not contain a space (e.g. in Chinese).Fixed an issue that fused multiline text together if the total number of characters was less than 100
Fixed
gtts-cli
Unicode errors in Python 2.7 (famous last words) (#78, #93, #96)
Deprecations and Removals
Dropped Python 3.3 support
Removed
debug
parameter ofgTTS
(in favour of logger)gtts-cli
: Changed long option name of-o
to--output
instead of--destination
gTTS()
will raise aValueError
rather than anAssertionError
on unsupported language
Improved Documentation
Rewrote all documentation files as reStructuredText
Comprehensive documentation writen for Sphinx, published to http://gtts.readthedocs.io
Changelog built with towncrier
Misc
1.2.2 (2017-08-15)
Misc
Update LICENCE, add to manifest (#77)
1.2.1 (2017-08-02)
Features
Add Unicode punctuation to the tokenizer (such as for Chinese and Japanese) (#75)
Bugfixes
1.2.0 (2017-04-15)
Features
Bugfixes
Deprecations and Removals
‘pt-br’ : ‘Portuguese (Brazil)’ (it was the same as ‘pt’ and not Brazilian) (#69)
1.1.8 (2017-01-15)
Features
Added
stdin
support via the ‘-’text
argument togtts-cli
(#56)
1.1.7 (2016-12-14)
Features
Added utf-8 support to
gtts-cli
(#52)
1.1.6 (2016-07-20)
Features
Deprecations and Removals
‘ht’ : ‘Haitian Creole’ (removed by Google) (#43)
1.1.5 (2016-05-13)
Bugfixes
1.1.4 (2016-02-22)
Features
Spun-off token calculation to gTTS-Token (#23, #29)
1.1.3 (2016-01-24)
Bugfixes
Misc
Moved out gTTS token to its own module (#19)
1.1.2 (2016-01-13)
Features
1.0.7 (2015-10-07)
Features
Added
stdout
support togtts-cli
, text now an argument rather than an option (#10)
1.0.6 (2015-07-30)
Features
Raise an exception on bad HTTP response (4xx or 5xx) (#8)
Bugfixes
Added
client=t
parameter for the api HTTP request (#8)
1.0.5 (2015-07-15)
Features
write_to_fp()
to write to a file-like object (#6)
1.0.4 (2015-05-11)
Features
Added Languages:
zh-yue
:Chinese (Cantonese)
,en-uk
:English (United Kingdom)
, pt-br: Portuguese (Brazil), es-es:Spanish (Spain)
,es-us
:Spanish (United StateS)
,zh-cn
:Chinese (Mandarin/China)
, zh-tw: Chinese (Mandarin/Taiwan) ([#4](https://github.com/pndurette/gTTS/issues/4))
Bugfixes
gtts-cli
print version and pretty printed available languages, language codes are now case insensitive (#4)
1.0.3 (2014-11-21)
Features
Added Languages: ‘en-us’ : ‘English (United States)’, ‘en-au’ : ‘English (Australia)’ (#3)
1.0.2 (2014-05-15)
Features
Python 3 support
1.0.1 (2014-05-15)
Misc
SemVer versioning, CI changes
1.0 (2014-05-08)
Features
Initial release