Comments (6)
https://github.com/jsk-ros-pkg/jsk_3rdparty/tree/master/3rdparty/google_cloud_texttospeech は問題なくこれらの記号がある文を読み上げてくれることを確認しました。
hiraoka@hiraoka-desktop:/opt/ros/melodic/share/pr2eus$ roseus ./speak.l
$ (ros::roseus "aaa")
$ (speak-jp "『こんにちは』")
$ (speak-jp "こんにちは!")
$ (speak-jp "こんにちは〜")
from jsk_3rdparty.
この件に関して、aques_talkにプルリクエストを出しました。
#257
まずaques_talkが「!」や「こんにちは!」を読めない問題ですが、これは特殊なタグで囲うことで読めるようになります。
https://www.a-quest.com/archive/manual/siyo_onseikigou.pdf
この音声記号列仕様表とAquesTalk2 Linux Manualの存在をREADMEに書き、かつ、JSKのGoogle Driveにもおいておきました。
https://www.a-quest.com/archive/manual/aqtk2_lnx_man.pdf
このように特定の文字列を特殊タグで囲う作業はすでにaques_talkでは行われていて、以下のように入力文字列をsedで置き換えることで、数字やアルファベットを読めるようにしています。
jsk_3rdparty/3rdparty/aques_talk/text2wave
Lines 33 to 41 in 2b0226e
今回は「!」を読んでほしいわけではないと思うので、sedの行を追加して「!」や「『」などの文字を無視するようにしました。
ただ、「'」や「"」が文章の開始文字として認識されたり、「[」や「]」がsedの制御文字と認識されたりと、無視しきれない文字があったので、README.mdにそのことを書いておきました。(SQLインジェクション対策の重要性がわかってきました)
僕の正規表現力が低い可能性が高いので、実は「]」は入力できるよ、のような表現があれば教えていただきたいです。
次にvoice_textで(send *ri* :speak-jp xxx)を行ったところ、「!」は発音されなかったですが「こんにちは!」を読むことは出来ました。また、fetch_bringup.launchのログにエラーも表示されませんでした。
ReakSpeaker(旧voice_text)のオンライン音声合成サンプルでも試しましたが、やはり「!」は発音されず「こんにちは!」を読むことは出来ました。
https://readspeaker.jp/
僕は今のところ、voice_textではAquesTalkの音声記号列仕様表のようなドキュメントを見つけられていないので、見つけ次第返信します。
from jsk_3rdparty.
プルリクありがとうございます。
プルリクのブランチのaques_talkを使って、上記のchaplus_ros.pyの138-141行目のreplaceしているところは消したコードで
roslaunch chaplus_ros google_example.launch
を試したところ、エラーが出なくなっていることを確認しました。
上記のchaplus_ros.pyの138-141行目は消去したいと思います。
from jsk_3rdparty.
ご確認ありがとうございます。
その後、プログラムの見通しを良くするために追加コミットをしたので、再度ご確認していただけると助かります。
ちなみに、aques_talk側での文字列置換では以下の操作を行っています。
- 漢字をひらがなに変換。
nkf -j %s | kakasi -JH | nkf -w | \
- 「,」を「、」に、「,」を「、」に、「.」を「。」に、「.」を「。」に変換。
sed -e 's/,/、/g' | sed -e 's/,/、/g' | \
sed -e 's/./。/g' | sed -e 's/\./。/g' | \
- 正規表現で[a-zA-Z0-9ぁ-んァ-ンー、。??]を表す文字以外を全て削除。つまり、アルファベット、数字、ひらがな、カタカナ、「ー、。??」以外を全て削除。
sed -e 's/[^a-zA-Z0-9ぁ-んァ-ンー、。??]//g' | \
- AquesTalk2がアルファベットや数字を発音できるように、特殊な制御文字を追加。
sed -e 's/\([a-zA-Z]\+\)/<ALPHA VAL=\\1>/g' | \
sed -e 's/\([0-9]\+\)/<NUMK VAL=\\1>/g' > \
from jsk_3rdparty.
ありがとうございます。動作することを確認しました。
細かい話になってしまうのですが、「!」は文の切れ目に多いと思うので「。」に置換するのと、「〜」は伸びる音「ー」に置換したほうが、よりもともとのニュアンスが伝わるかなと思いました。
下記のものを追加するのはいかがでしょうか?
ご検討よろしくお願い致します。
sed -e 's/!/。/g' | sed -e 's/\!/。/g' | \
sed -e 's/〜/ー/g' | \
from jsk_3rdparty.
@ayfujii よい提案だと思うので
https://github.com/jsk-ros-pkg/jsk_3rdparty/blob/57c53ad08b09709b88538c3319153c08aff65cea/3rdparty/aques_talk/README.md
にpull requestを送るのが良いと思います
その際、それぞれの場合の音声のwavファイルもつけると説得力が増します
from jsk_3rdparty.
Related Issues (20)
- [switchbot_ros] build failure on build.ros.org HOT 5
- support mebo? HOT 5
- [influxdb_store] implement more logger
- [google-chat-ros] problems of google-auth HOT 4
- support mecab
- [google_chat_ros] Where do you upload your image? HOT 5
- 音声認識してしゃべるプログラムはどうやってかくんですか? HOT 1
- [respeaker_ros] `speech_to_text.py` failed to run with `SpeechRecognition=3.9.0` HOT 1
- google_chat_rosの設定方法がわからない
- Missing dependency of `ros_speech_recognition` for `ubuntu-sounds` package HOT 1
- [respeaker_ros] デバイスを認識できません HOT 7
- [Noetic] julius fails to build on arm64 and armhf
- [Noetic] ros_speech_recognition fails to build on arm64 and armhf
- [Suggestion] Drop indigo test
- [Noetic] google_chat_ros fails to build: Missing actionlib_msgs dependency
- [Noetic] nfc_ros fails to build: Missing dependecy rostest
- [Noetic] ros_google_cloud_language fails to build: Missing pthreads
- [Noetic] zdepth_image_transport fails to build: fails to link against pthreads
- [noetic] respeaker_ros failing to build armhf & armv8 HOT 2
- Plans for ROS2 support? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jsk_3rdparty.