Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[voice_text] Call rosservice from python instead of bash #166

Merged
merged 4 commits into from
Jul 10, 2019

Conversation

itohdak
Copy link
Contributor

@itohdak itohdak commented Jun 18, 2019

rosservice call with bash command sometimes gets stuck when executed one after another.
Instead of using rosservice call with bash command, this PR calls the service through Python node.

@k-okada k-okada added the MergeOK label Jul 3, 2019
Copy link
Member

@k-okada k-okada left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@itohdak nice work, could you rewrite text2wave which python?

@k-okada k-okada changed the title Call rosservice from python instead of bash [voice_text] Call rosservice from python instead of bash Jul 3, 2019
Copy link
Member

@k-okada k-okada left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

btw, did anyone have some trouble with this? I do not think you're only one user for voice_text package.

@itohdak
Copy link
Contributor Author

itohdak commented Jul 4, 2019

@k-okada I rewrote text2wave with python and removed unnecessary files.

@itohdak
Copy link
Contributor Author

itohdak commented Jul 4, 2019

The trouble around this is a little bit complex as I commented in #167.

About two weeks ago, @Affonso-Gui and @708yamaguchi told me that the don't-speak issue had been occurring with the Fetch robot too.
So we debugged for the cause and found that the gstreamer issue was occurring.
Since this gstreamer error occurs before the voice_text issue, I think the Fetch robot hasn't experienced the voice_text issue, which will possibly be solved with this PR.
To deal with this gstreamer error, we are now respawning the sound_play node with like this commit, which is a workaround solution.

I'm not sure for the PR2 robot. @knorth55

@knorth55
Copy link
Member

knorth55 commented Jul 4, 2019

@itohdak both issue does not happen in PR2.
this PR looks good to me.
But I want to know more about gstreamer issue.
Where are you guys dicussing about the issue?
which version of gstreamer are you using?
Has you solve the issue on Fetch?

@itohdak
Copy link
Contributor Author

itohdak commented Jul 4, 2019

@knorth55 Sorry. We have not discussed online, so I have no link I can show you.

@furushchev first found the gstreamer issue and taught us the workaround.
Actually, the PR was made in ros-drivers/audio_common#77, but it hasn't been merged because of the large amount of changes.
On PR2, I think this developed version is used and, if so, it is reasonable that the gstreamer issue doesn't happen.
The commit in my last comment is the one cherry-picked from @furushchev 's commits.

On Fetch, the gstreamer issue was actually solved with applying this solution.
However, the latest version of sound_play cannot be applied for Japanese because of the encoding issue, and it is now pending.
This encoding issue is discussed in ros-drivers/audio_common#123.

My version of gstreamer is as below.

$ gst-inspect-1.0 --gst-version
GStreamer Core Library version 1.2.4

@k-okada k-okada merged commit 2648db0 into jsk-ros-pkg:master Jul 10, 2019
@itohdak itohdak deleted the fix_dont_speak_issue branch July 10, 2019 03:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants