RESOLVED FIXED136127
[EFL] Utilize espeak as a synthesizer back-end for WebSpeech
https://bugs.webkit.org/show_bug.cgi?id=136127
Summary [EFL] Utilize espeak as a synthesizer back-end for WebSpeech
Krzysztof Czech
Reported 2014-08-21 05:32:24 PDT
Utilize espeak as a synthesizer back-end for WebSpeech.
Attachments
patch (15.68 KB, patch)
2014-08-21 05:44 PDT, Krzysztof Czech
no flags
attempt to check webkit-efl bot (15.68 KB, patch)
2014-08-22 00:22 PDT, Krzysztof Czech
no flags
patch (15.69 KB, patch)
2014-08-22 07:17 PDT, Krzysztof Czech
no flags
patch (15.43 KB, patch)
2014-08-25 03:47 PDT, Krzysztof Czech
no flags
patch (14.97 KB, patch)
2014-08-25 04:23 PDT, Krzysztof Czech
no flags
patch (15.02 KB, patch)
2014-08-25 08:08 PDT, Krzysztof Czech
buildbot: commit-queue-
Archive of layout-test-results from webkit-ews-11 for mac-mountainlion-wk2 (490.72 KB, application/zip)
2014-08-25 10:25 PDT, Build Bot
no flags
attempt to check bots (15.02 KB, patch)
2014-08-26 00:27 PDT, Krzysztof Czech
gyuyoung.kim: review+
Krzysztof Czech
Comment 1 2014-08-21 05:44:32 PDT
Gyuyoung Kim
Comment 2 2014-08-21 17:52:37 PDT
I finished to install libespeak-dev to efl-ews and buildbot.
Krzysztof Czech
Comment 3 2014-08-22 00:22:11 PDT
Created attachment 236971 [details] attempt to check webkit-efl bot
Gyuyoung Kim
Comment 4 2014-08-22 00:36:30 PDT
Comment on attachment 236971 [details] attempt to check webkit-efl bot View in context: https://bugs.webkit.org/attachment.cgi?id=236971&action=review Any tests or unskip test by this patch ? > Source/WebCore/platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:195 > + }; ASSERT_NOT_REACHED() ?
Krzysztof Czech
Comment 5 2014-08-22 02:12:39 PDT
(In reply to comment #4) > (From update of attachment 236971 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=236971&action=review > > Any tests or unskip test by this patch ? > > > Source/WebCore/platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:195 > > + }; > > ASSERT_NOT_REACHED() ? Currently only Mac has supported speech synthesis and there're some tests that could be shared. There look generic There are some tests in Mac, they seem generic and could be shared with other ports. I will add them in the next patch.
Krzysztof Czech
Comment 6 2014-08-22 07:17:34 PDT
Krzysztof Czech
Comment 7 2014-08-22 07:18:40 PDT
(In reply to comment #4) > (From update of attachment 236971 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=236971&action=review > > Any tests or unskip test by this patch ? > > > Source/WebCore/platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:195 > > + }; > > ASSERT_NOT_REACHED() ? This object should never be deleted but just in case having this assert sounds fine with me. DONE.
Gyuyoung Kim
Comment 8 2014-08-22 21:01:48 PDT
Comment on attachment 236984 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=236984&action=review > Source/WebCore/platform/efl/PlatformSpeechSynthesizerEfl.cpp:50 > + if (m_platformSpeechWrapper) Any chance m_platformSpeechWrapper can be null though this is created ctor ? Isn't ASSERT() better ? > Source/cmake/OptionsEfl.cmake:96 > +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SPEECH_SYNTHESIS ON) If you want to add tests in next time, I think we should not enable this feature in this time. > Tools/efl/install-dependencies:74 > + libespeak-dev \ It would be good if you place this by alphabet order.
Krzysztof Czech
Comment 9 2014-08-25 03:47:22 PDT
Krzysztof Czech
Comment 10 2014-08-25 03:49:53 PDT
(In reply to comment #8) > (From update of attachment 236984 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=236984&action=review > > > Source/WebCore/platform/efl/PlatformSpeechSynthesizerEfl.cpp:50 > > + if (m_platformSpeechWrapper) > > Any chance m_platformSpeechWrapper can be null though this is created ctor ? Hmm, probably not > > Isn't ASSERT() better ? but I'm fine with having this ASSERT, done. > > > Source/cmake/OptionsEfl.cmake:96 > > +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SPEECH_SYNTHESIS ON) > > If you want to add tests in next time, I think we should not enable this feature in this time. OK, done > > > Tools/efl/install-dependencies:74 > > + libespeak-dev \ > > It would be good if you place this by alphabet order. Done
Gyuyoung Kim
Comment 11 2014-08-25 03:55:00 PDT
Comment on attachment 237073 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=237073&action=review > Source/WebCore/platform/efl/PlatformSpeechSynthesizerEfl.cpp:51 > + if (m_platformSpeechWrapper) Why we still need to check if m_platformSpeechWrapper is null ? I meant m_platformSpeechWrapper can't be null. So, we don't need to check it. Thus, we can use ASSERT() because m_platformSpeechWrapper should not be null.
Krzysztof Czech
Comment 12 2014-08-25 04:12:49 PDT
(In reply to comment #11) > (From update of attachment 237073 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=237073&action=review > > > Source/WebCore/platform/efl/PlatformSpeechSynthesizerEfl.cpp:51 > > + if (m_platformSpeechWrapper) > > Why we still need to check if m_platformSpeechWrapper is null ? I meant m_platformSpeechWrapper can't be null. So, we don't need to check it. Thus, we can use ASSERT() because m_platformSpeechWrapper should not be null. Yes, you're right, this can be deleted, sorry. I sometimes find myself too wary.
Krzysztof Czech
Comment 13 2014-08-25 04:23:51 PDT
Gyuyoung Kim
Comment 14 2014-08-25 06:14:50 PDT
Comment on attachment 237075 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=237075&action=review > Source/WebCore/platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:48 > + ASSERT_NOT_REACHED(); Why here ? > Source/WebCore/platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:78 > + // Espeak adds an empty char at the beginning of the language char -> character ? > Source/WebCore/platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:93 > + if (!m_isEngineStarted) { How about using early return for better readability as below ? if (!m_isEngineStarted) { if (m_isEngineStarted = espeak_Initialize(AUDIO_OUTPUT_PLAYBACK, 0, 0, 0) == EE_INTERNAL_ERROR) return false; } espeak_SetVoiceByName("default"); return true; > Source/WebCore/platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:159 > + fireSpeechEvent(SpeechError); Don't you need to set m_utterance = nullptr; as well ?
Krzysztof Czech
Comment 15 2014-08-25 07:34:34 PDT
(In reply to comment #14) > (From update of attachment 237075 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=237075&action=review > > > Source/WebCore/platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:48 > > + ASSERT_NOT_REACHED(); > > Why here ? I expect this object will never be deleted, but I'm not sure about it now. > > > Source/WebCore/platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:78 > > + // Espeak adds an empty char at the beginning of the language > > char -> character ? Thanks > > > Source/WebCore/platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:93 > > + if (!m_isEngineStarted) { > > How about using early return for better readability as below ? But then m_isEngineStarted points to EE_INTERNAL_ERROR that is OK, which is a bit not intuitive. Maybe something like this if !(m_isEngineStarted = espeak_Initialize(AUDIO_OUTPUT_PLAYBACK, 0, 0, 0) != EE_INTERNAL_ERROR) return false; Now when initialization is wrong, m_isEngineStarted is false. But early return is fine, I will change the code. > > if (!m_isEngineStarted) { > if (m_isEngineStarted = espeak_Initialize(AUDIO_OUTPUT_PLAYBACK, 0, 0, 0) == EE_INTERNAL_ERROR) > return false; > } > espeak_SetVoiceByName("default"); > > return true; > > > Source/WebCore/platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:159 > > + fireSpeechEvent(SpeechError); > > Don't you need to set m_utterance = nullptr; as well ? I agree.
Krzysztof Czech
Comment 16 2014-08-25 08:08:17 PDT
Build Bot
Comment 17 2014-08-25 10:24:55 PDT
Comment on attachment 237084 [details] patch Attachment 237084 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/5637799936000000 New failing tests: js/dom/line-column-numbers.html
Build Bot
Comment 18 2014-08-25 10:25:01 PDT
Created attachment 237092 [details] Archive of layout-test-results from webkit-ews-11 for mac-mountainlion-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: webkit-ews-11 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
Krzysztof Czech
Comment 19 2014-08-26 00:27:19 PDT
Created attachment 237136 [details] attempt to check bots
Krzysztof Czech
Comment 20 2014-08-26 02:24:37 PDT
Gyuyoung any chance to get final review ?
Gyuyoung Kim
Comment 21 2014-08-26 03:12:10 PDT
Comment on attachment 237136 [details] attempt to check bots View in context: https://bugs.webkit.org/attachment.cgi?id=237136&action=review Looks better than previous patch. Please land after fixing trivial nits. > Source/WebCore/platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:35 > Unneeded line. > Source/WebCore/platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:120 > + } Need to add new line.
Krzysztof Czech
Comment 22 2014-08-26 04:26:39 PDT
Note You need to log in before you can comment on or make changes to this bug.