ฉันจะเปลี่ยนเสียงที่ใช้โดย Firefox Reader View (โปรแกรมผู้บรรยาย) ใน Ubuntu ได้อย่างไร


13

** วิธีการเปลี่ยน firefox reader ดูเสียงใน Ubuntu

เสียงที่เป็นค่าเริ่มต้นและเสียงทางเลือกทั้งหมดนั้นยากที่จะเข้าใจ

ฉันไม่พบเอกสารใด ๆ เกี่ยวกับการเชื่อมต่อคุณสมบัตินี้

คำตอบ:


11

ฉันจัดการเพื่อใช้festivalเสียงเป็นค่าเริ่มต้นในFirefox

ป้อนคำอธิบายรูปภาพที่นี่

/etc/speech-dispatcher/speechd.confเพื่อที่จะทำอย่างนั้นเราจำเป็นต้องเปลี่ยนการกำหนดค่าบางอย่างเกี่ยวกับไฟล์ แต่ก่อนอื่นฉันต้องอธิบายแนวคิดพื้นฐานว่ามันทำงานอย่างไร เราสามารถเห็นได้ว่าเสียงใดที่เป็นค่าเริ่มต้นที่ใช้โดยspeech-dispatcherใช้คำสั่งspd-say:

spd-say "Hello. How are you?"

เมื่อวันที่Ubuntuเริ่มต้น Texto To Speech (TTS) เสียงที่มาพร้อมกับspeech-dispatcherเป็นeSpeak ดังนั้นเราจึงได้ยินเสียงเดียวกันเมื่อเราใช้คำสั่งอื่น:

espeak "Hello. How are you?"

ที่เกิดขึ้นเพราะspd-sayเป็นเพียงการใช้espeakเสียงเป็นเอาท์พุท และ Firefox ก็ทำเช่นเดียวกันมันใช้เสียงใดก็ตามที่กำหนดค่าไว้speech-dispatcherเป็นเอาต์พุตเพื่ออ่านหน้าเว็บในโหมดมุมมองผู้อ่าน ( Ctrl+Alt+R)

ดังนั้นสิ่งที่เราต้องทำที่นี่คือการเปลี่ยนเสียงที่เป็นเอาต์พุตในspd-sayคำสั่งและเมื่อเราทำเช่นนั้นFirefoxจะใช้TTS voiceค่าเริ่มต้นที่แตกต่างกันเช่นกัน ฉันจะอธิบายขั้นตอนการทำก็ทำงานกับที่festivalเสียง TTS voiceแต่ผมเชื่อว่าขั้นตอนจะเหมือนกันถ้าคุณต้องการที่จะทำงานที่แตกต่างกัน ก่อนอื่นเราต้องติดตั้งเทศกาล :

sudo apt-get install festival

เราสามารถทดสอบเสียงในบรรทัดคำสั่งโดยพิมพ์:

echo "Hello. How are you?" | festival --tts

speechd.confตอนนี้เราจำเป็นต้องเปลี่ยนไฟล์ ดังนั้นเราจึงพิมพ์sudo vi /etc/speech-dispatcher/speechd.confเทอร์มินัลและรอบ ๆ บรรทัด 205 เราจะเห็นการกำหนดค่าที่แสดงความคิดเห็นต่อไปนี้:

#AddModule "espeak"       "sd_espeak"   "espeak.conf"
AddModule "festival"     "sd_festival"  "festival.conf"
#AddModule "flite"        "sd_flite"     "flite.conf"
#AddModule "ivona"    "sd_ivona"    "ivona.conf"
#AddModule "pico"        "sd_pico"     "pico.conf"
#AddModule "espeak-generic" "sd_generic" "espeak-generic.conf"
#AddModule "espeak-mbrola-generic" "sd_generic" "espeak-mbrola-generic.conf"
#AddModule "swift-generic" "sd_generic" "swift-generic.conf"
#AddModule "epos-generic" "sd_generic"   "epos-generic.conf"
#AddModule "dtk-generic"  "sd_generic"   "dtk-generic.conf"
#AddModule "pico-generic"  "sd_generic"   "pico-generic.conf"
#AddModule "ibmtts"       "sd_ibmtts"    "ibmtts.conf"
#AddModule "cicero"        "sd_cicero"     "cicero.conf"

# DO NOT REMOVE the following line unless you have
# a specific reason -- this is the fallback output module
# that is only used when no other modules are in use
#AddModule "dummy"         "sd_dummy"      ""

# The output module testing doesn't actually connect to anything. It
# outputs the requested commands to standard output and reads
# responses from stdandard input. This way, Speech Dispatcher's
# communication with output modules can be tested easily.

# AddModule "testing"

# The DefaultModule selects which output module is the default.  You
# must use one of the names of the modules loaded with AddModule.

#DefaultModule espeak
DefaultModule festival

จำเป็นต้องทำการเปลี่ยนแปลงสองครั้งที่นี่:

  1. ยกเลิกการใส่เครื่องหมายบรรทัด AddModule "festival" "sd_festival" "festival.conf"
  2. เพิ่มบรรทัด DefaultModule festival

เราจำเป็นต้องเรียกใช้festivalเป็นเซิร์ฟเวอร์เพื่อspeech-dispatcherใช้งานเป็นค่าเริ่มต้น เราสามารถทำได้โดยการเพิ่มบรรทัดต่อไปนี้ในตอนท้ายของไฟล์ที่เปิดเมื่อเราใช้คำสั่งsudo crontab -e:

@reboot /usr/bin/festival --server

ตอนนี้มันเสร็จแล้ว !! หลังจากรีบูตระบบFirefoxและspd-sayจะใช้festivalเสียงเป็นเอาท์พุท


ข้อมูลเพิ่มเติม

ฉันเชื่อว่ากระบวนการในการทำให้เสียงใหม่ทำงานFirefoxได้เหมือนเดิม:

  1. ไม่ใส่หมายเหตุโมดูลของเสียง TTS ใหม่ที่เราติดตั้ง ( /etc/speech-dispatcher/speechd.conf)

  2. ตั้งค่าบรรทัดเริ่มต้นใหม่สำหรับเสียง TTS ที่เราต้องการ ( /etc/speech-dispatcher/speechd.conf)

  3. /etc/speech-dispatcher/modules/เรียกใช้เซิร์ฟเวอร์ในพอร์ตที่ระบุไว้ในไฟล์ภายในโฟลเดอร์

สิ่งที่เรียกว่าความสนใจของฉันคือมีโมดูลสำหรับเสียงIvona ที่นั่น Ivona เป็นสินค้าที่เป็นกรรมสิทธิ์และวันนี้วิธีเดียวที่จะใช้มัน (เท่าที่ฉันรู้) เป็นเป็นบริการแบบจ่ายตามที่คุณไปในAWSแต่เสียงของมันเป็นสิ่งที่ดีจริงๆและพวกเขาเสียงเป็นธรรมชาติมาก

ไฟล์ได้/etc/speech-dispatcher/modules/ivona.confรับการกำหนดค่าให้ฟังเซิร์ฟเวอร์ในพอร์ต 9123 ฉันคิดว่าอาจมีวิธีเรียกใช้เซิร์ฟเวอร์ในท้องถิ่นที่ได้รับเสียง Ivona โดยใช้ฉันAWS APIs(ฉันไม่แน่ใจ แต่อาจใช้ส่วนหนึ่งของแอป Node.js นี้ที่พัฒนาแล้ว) ... และถ้าเป็นไปได้ก็หมายความว่ามันเป็นไปได้ที่จะเรียกใช้ Ivona บน Ubuntuเป็นเสียงเริ่มต้นของระบบและจึงใช้กับreader view modeในFirefox แม้ว่าฉันจะไม่ทราบวิธีการทำในตอนนี้ แต่ดูเหมือนว่าความเป็นไปได้ที่น่าสนใจ


6

เสียงที่ใช้โดยฟังก์ชั่นการบรรยายของโหมดตัวอ่าน firefox ขึ้นอยู่กับแพลตฟอร์มที่คุณใช้งาน บน Linux firefox จะใช้speech-dispatcherเพื่อแสดงข้อความเป็นคำพูดประดิษฐ์

ดังนั้นสิ่งที่คุณได้กำหนดค่าไว้ในการตั้งค่าโปรแกรมส่งคำพูด ( /etc/speech-dispatcher/speechd.conf) ควรเลือกและใช้งานโดย firefox มีเครื่องมือต่างๆและเสียงพร้อมใช้งานสำหรับการพูดมอบหมายงานบางส่วนที่สามารถติดตั้งผ่านแพคเกจ Ubuntu เช่นมีหรือspeech-dispatcher-espeak-ngspeech-dispatcher-festival

มีการสนับสนุนที่ จำกัด สำหรับการเลือกเสียง / ภาษาจากภายในตัวอ่าน firefox GUI แต่การตั้งค่าส่วนใหญ่จะต้องทำในฝั่ง OS ซึ่งอยู่speechd.confบน linux

การตั้งค่าบางอย่างสามารถใช้งานได้ผ่านabout:configกล่องโต้ตอบหากคุณค้นหา "บรรยาย":

ป้อนคำอธิบายรูปภาพที่นี่

ผมทดลองไม่น้อยกับการตั้งค่าที่แตกต่างกันทั้งในabout:configและspeechd.confแต่ไม่สามารถรับสิ่งที่จะทำงาน แต่เริ่มต้นที่มาพร้อมกับอูบุนตู ความรู้สึกที่ฉันได้รับคือส่วนต่อประสานระหว่าง firefox และ speech-ดิสแพตเชอร์นั้นไม่เสถียรมาก แต่บางทีคุณอาจจะโชคดีกว่าที่ทดลอง

ผู้ชายคนนี้: https://bbs.archlinux.org/viewtopic.php?id=217411ดูเหมือนว่าจะประสบความสำเร็จมากขึ้นเกี่ยวกับ Archlinux ที่กำหนดค่าสิ่งต่าง ๆ เพื่อใช้งานเทศกาลเป็นผลผลิต ฉันพยายามทำซ้ำสิ่งนี้บน Ubuntu 18.04 แต่ไม่สามารถรับ firefox ให้ทำงานได้


1

ขอบคุณRafael Muynarsk ที่จะตอบให้ฉันเริ่มต้น นี่คือสิ่งที่ฉันทำ

ติดตั้งการพึ่งพา

apt install festival speech-dispatcher-festival festvox-{rablpc16k,kallpc16k,kdlpc16k} sox
  • festvox-{rablpc16k,kallpc16k,kdlpc16k} เป็นภาษาเสียงสำหรับภาษาอังกฤษ
  • soxโดยไม่ต้องมีเพียงบางส่วนของข้อความที่อ่าน

แก้ไขการกำหนดค่า

sudo vim /etc/speech-dispatcher/speechd.conf

ปิดใช้งานการกำหนดค่าespeakที่เกี่ยวข้องและเปิดใช้งานfestivalหนึ่งรายการ

#AddModule "espeak-ng"    "sd_espeak-ng" "espeak-ng.conf"
AddModule "festival"     "sd_festival"  "festival.conf"

#DefaultModule espeak-ng
DefaultModule festival

เริ่มfestivalเซิร์ฟเวอร์

หากไม่มีมันฉันจะได้รับเพียงบาง syntences

/usr/bin/festival --server

รีสตาร์ท Firefox

จากนั้นไปที่โหมดมุมมองผู้อ่านแล้วลอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.