Changelog¶
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