Hi,
first of all, please note that the latest released version of aeneas is
1.7.3: if you are using an earlier version, it might not work properly.
If so, please update.
If you are in fact using aeneas 1.7.3, here:
https://github.com/readbeyond/aeneas/blob/master/aeneas/ttswrappers/awsttswrapper.py
I see that "fra-CAN" is listed among the languages supported by the
"aws" wrapper, so if you specify:
task_language=fra-CAN
as part of your task configuration string, it should work. Note that you
should write it as above, including capitalization, "fra-can" or
"fra_can" will not work.
A small test I did, with -v to see debug messages:
$ python -m aeneas.tools.execute_task aeneas/tools/res/audio.mp3
aeneas/tools/res/plain.txt
"task_language=fra-CAN|is_text_type=plain|os_task_file_format=json"
output/sonnet.json -r="tts=aws|tts_cache=True" -v
[DEBU] CLI: Running aeneas 1.7.4
[DEBU] CLI: Formal arguments:
[u'/home/alberto/projects/rb/aeneas/aeneas/tools/execute_task.py',
u'aeneas/tools/res/audio.mp3', u'aeneas/tools/res/plain.txt',
u'task_language=fra-CAN|is_text_type=plain|os_task_file_format=json',
u'output/sonnet.json', u'-r=tts=aws|tts_cache=True', u'-v']
[DEBU] CLI: Actual arguments: [u'aeneas/tools/res/audio.mp3',
u'aeneas/tools/res/plain.txt',
u'task_language=fra-CAN|is_text_type=plain|os_task_file_format=json',
u'output/sonnet.json']
[DEBU] CLI: Runtime configuration:
'aba_no_zero_duration=0.001|aba_nonspeech_tolerance=0.080|allow_unlisted_languages=False|c_extensions=True|cdtw=True|cew=True|cew_subprocess_enabled=False|cew_subprocess_path=python|cfw=True|cmfcc=True|downloader_retry_attempts=5|downloader_sleep=1.000|dtw_algorithm=stripe|dtw_margin=60.000|dtw_margin_l1=60.000|dtw_margin_l2=30.000|dtw_margin_l3=10.000|ffmpeg_path=ffmpeg|ffmpeg_sample_rate=16000|ffprobe_path=ffprobe|job_max_tasks=0|mfcc_emphasis_factor=0.97|mfcc_fft_order=512|mfcc_filters=40|mfcc_lower_frequency=133.3333|mfcc_mask_extend_speech_after=0|mfcc_mask_extend_speech_before=0|mfcc_mask_log_energy_threshold=0.699|mfcc_mask_min_nonspeech_length=1|mfcc_mask_nonspeech=False|mfcc_mask_nonspeech_l1=False|mfcc_mask_nonspeech_l2=False|mfcc_mask_nonspeech_l3=False|mfcc_size=13|mfcc_upper_frequency=6855.4976|mfcc_window_length=0.100|mfcc_window_length_l1=0.100|mfcc_window_length_l2=0.050|mfcc_window_length_l3=0.020|mfcc_window_shift=0.040|mfcc_window_shift_l1=0.040|mfcc_window_shift_l2=0.020|mfcc_window_shift_l3=0.005|safety_checks=True|task_max_audio_length=0|task_max_text_length=0|tts=aws|tts_api_retry_attempts=5|tts_api_sleep=1.000|tts_cache=True|tts_l1=espeak|tts_l2=espeak|tts_l3=espeak|vad_extend_speech_after=0.000|vad_extend_speech_before=0.000|vad_log_energy_threshold=0.699|vad_min_nonspeech_length=0.200'
...
[DEBU] ExecuteTask: Setting synthesizer...
[DEBU] Synthesizer: Selecting TTS engine...
[DEBU] Synthesizer: TTS engine: AWS Polly TTS API
[DEBU] AWSTTSWrapper: No tts_path specified in rconf, setting default
TTS path
[DEBU] TTSCache: Cache initialized
[DEBU] AWSTTSWrapper: TTS path is None
[DEBU] AWSTTSWrapper: TTS cache? True
[DEBU] AWSTTSWrapper: Has Python call? True
[DEBU] AWSTTSWrapper: Has C extension call? False
[DEBU] AWSTTSWrapper: Has subprocess call? False
[DEBU] Synthesizer: Selecting TTS engine... done
[DEBU] ExecuteTask: Setting synthesizer... done
[DEBU] ExecuteTask: STEP 3 BEGIN (synthesize text)
[DEBU] Synthesizer: Synthesizing text...
[DEBU] AWSTTSWrapper: Calling TTS engine via Python
[DEBU] AWSTTSWrapper: Synthesizing multiple via a Python call...
[DEBU] AWSTTSWrapper: Calling TTS engine using multiple generic function...
[DEBU] AWSTTSWrapper: Determining codec and sample rate...
[DEBU] AWSTTSWrapper: Reading codec and sample rate from OUTPUT_AUDIO_FORMAT
[DEBU] AWSTTSWrapper: Determining codec and sample rate... done
[DEBU] AWSTTSWrapper: codec: pcm_s16le
[DEBU] AWSTTSWrapper: sample rate: 16000
[DEBU] AWSTTSWrapper: Examining fragment 0 (cache)...
[DEBU] AWSTTSWrapper: Fragment not cached: synthesizing and caching
[DEBU] AWSTTSWrapper: Synthesizing fragment to '/tmp/tmp4IoWaF.cache.wav'...
[DEBU] AWSTTSWrapper: Language to voice code: 'fra-CAN' => 'Chantal'
[DEBU] AWSTTSWrapper: Calling helper function
[DEBU] AWSTTSWrapper: Importing boto3...
[DEBU] AWSTTSWrapper: Importing boto3... done
[DEBU] AWSTTSWrapper: Sleep delay: 1.000
[DEBU] AWSTTSWrapper: Retry attempts: 5
[DEBU] AWSTTSWrapper: Sleeping to throttle API usage...
[DEBU] AWSTTSWrapper: Sleeping to throttle API usage... done
[DEBU] AWSTTSWrapper: Posting...
[CRIT] AWSTTSWrapper: Unexpected exception on HTTP POST. Are you offline?
[CRIT] AWSTTSWrapper: Unable to locate credentials
[WARN] AWSTTSWrapper: An unexpected error occurred while calling
_synthesize_multiple_python
[WARN] AWSTTSWrapper: Unexpected exception on HTTP POST. Are you
offline? : Unable to locate credentials
Note, however, that I do not have my AWS key set in my environment, so
the POST to the AWS Polly API failed. But the log above shows that the
voice "Chantal" was selected for Canadian French.
HTH,
Alberto Pettarin
On 09/03/2018 03:12 PM, Mohammed Ezzat wrote:
>
> Hello,
> First, Thank you very much for aeneas... it's been a great help so far
>
> I've a question, hope anybody can help
> I wanted to test aws, i installed awscli and boto3 then from the
> terminal I used "aws configure" to add my key and secret key
> and then I added-r="tts=aws|tts_cache=True" and tried to excute a task