Câu trả lời:
Tôi quản lý để sử dụng festivalgiọng nói như mặc định trên Firefox .
Để làm điều đó, chúng ta cần thay đổi một số cấu hình trên tệp /etc/speech-dispatcher/speechd.conf. Nhưng trước tiên, tôi cần giải thích ý tưởng cơ bản về cách thức hoạt động của nó. Chúng ta luôn có thể xem giọng nói nào là giọng nói mặc định được sử dụng bằng speech-dispatchercách sử dụng lệnh spd-say:
spd-say "Hello. How are you?"
Bật Ubuntu, giọng nói Texto To Speech (TTS) mặc định đi kèm speech-dispatcherlà đặc biệt . Vì vậy, chúng tôi nghe chính xác cùng một giọng nói khi chúng tôi sử dụng lệnh khác này:
espeak "Hello. How are you?"
Điều đó xảy ra bởi vì spd-saychỉ sử dụng espeakgiọng nói như đầu ra. Và, Firefox cũng làm như vậy, nó sử dụng bất kỳ giọng nói nào được cấu hình speech-dispatcherlàm đầu ra để đọc các trang web ở chế độ xem trình đọc ( Ctrl+Alt+R).
Vì vậy, những gì chúng ta cần làm ở đây là thay đổi giọng nói phát ra trong spd-saylệnh và, khi chúng ta làm điều đó, Firefox cũng sẽ sử dụng một cách khác TTS voicenhư mặc định. Tôi sẽ mô tả quá trình làm cho nó hoạt động với festivalgiọng nói, nhưng tôi tin rằng quy trình này giống nhau nếu bạn muốn chạy khác TTS voice. Đầu tiên, chúng ta cần cài đặt lễ hội :
sudo apt-get install festival
Chúng ta có thể kiểm tra giọng nói của nó trong dòng lệnh bằng cách gõ:
echo "Hello. How are you?" | festival --tts
Bây giờ chúng ta cần thay đổi tập tin speechd.conf. Vì vậy, chúng tôi gõ sudo vi /etc/speech-dispatcher/speechd.conftrên thiết bị đầu cuối và xung quanh dòng 205, chúng tôi sẽ thấy phần cấu hình nhận xét sau:
#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
Cần thực hiện hai thay đổi ở đây:
AddModule "festival" "sd_festival" "festival.conf"DefaultModule festivalChúng ta cần chạy festivalnhư một máy chủ để speech-dispatchersử dụng nó làm mặc định. Chúng tôi có thể làm điều đó bằng cách thêm dòng sau vào cuối tệp đang mở khi chúng tôi sử dụng lệnh sudo crontab -e:
@reboot /usr/bin/festival --server
Bây giờ đã xong !! Sau khi khởi động lại hệ thống Firefox và spd-saysẽ sử dụng festivalgiọng nói làm đầu ra.
Tôi tin rằng quy trình làm cho tiếng nói mới hoạt động Firefoxsẽ luôn giống nhau:
Bỏ ghi chú mô-đun của giọng nói TTS mới mà chúng tôi đã cài đặt ( /etc/speech-dispatcher/speechd.conf).
Đặt một dòng mặc định mới cho giọng nói TTS mà chúng ta muốn ( /etc/speech-dispatcher/speechd.conf).
Chạy một máy chủ trên cổng được chỉ định trên các tệp trong thư mục /etc/speech-dispatcher/modules/.
Điều khiến tôi chú ý đó là có một mô-đun cho tiếng nói của Ivona ở đó. IVONA là một sản phẩm độc quyền và ngày nay cách duy nhất để sử dụng nó (như xa như tôi biết) là như một dịch vụ pay-as-you-go trên AWS, nhưng tiếng nói của nó là thực sự tốt và họ âm thanh rất tự nhiên.
Tệp /etc/speech-dispatcher/modules/ivona.confđược định cấu hình để nghe máy chủ trên cổng 9123. Tôi nghĩ có lẽ có cách để chạy máy chủ cục bộ có giọng nói Ivona bằng cách sử dụng của tôi AWS APIs(tôi không chắc, nhưng có lẽ sử dụng một phần của ứng dụng Node.js này đó là đã phát triển) ... và nếu đó là có thể, nó có nghĩa là nó cũng có thể chạy IVONA trên Ubuntu như giọng nói mặc định của hệ thống và do đó sử dụng nó với reader view modetrên Firefox . Mặc dù tôi không biết làm thế nào để làm điều đó bây giờ, nó có vẻ như là một khả năng thú vị.
Các giọng nói được sử dụng bởi chức năng tường thuật của chế độ đầu đọc firefox phụ thuộc vào nền tảng bạn chạy trên đó. Trên Linux, firefox sẽ sử dụng speech-dispatcherđể kết xuất văn bản thành lời nói nhân tạo.
Vì vậy, bất cứ điều gì bạn đã cấu hình trong cài đặt bộ điều chỉnh lời nói ( /etc/speech-dispatcher/speechd.conf) của bạn nên được chọn và sử dụng bởi firefox. Có nhiều công cụ và giọng nói khác nhau dành cho người phát ngôn, một số có thể được cài đặt qua các gói Ubuntu, ví dụ speech-dispatcher-espeak-nghoặc speech-dispatcher-festival.
Có sự hỗ trợ hạn chế để chọn giọng nói / ngôn ngữ từ trong GUI của trình đọc firefox, nhưng hầu hết các cài đặt phải được thực hiện ở phía HĐH, speechd.conftrên linux.
Một số cài đặt có sẵn thông qua about:confighộp thoại nếu bạn tìm kiếm "tường thuật":
Tôi đã thử nghiệm khá nhiều với các cài đặt khác nhau trong cả hai, about:configvà speechd.conf, nhưng không thể làm gì để làm việc ngoài mặc định đi kèm với Ubuntu. Cảm giác tôi nhận được là giao diện giữa firefox và bộ điều phối lời nói không ổn định lắm, nhưng có lẽ bạn may mắn hơn khi thử nghiệm.
Anh chàng này: https://bbs.archlinux.org/viewtopic.php?id=217411 dường như đã thành công hơn trên Archlinux định cấu hình mọi thứ để sử dụng lễ hội làm đầu ra. Tôi đã cố gắng tái tạo điều này trên Ubuntu 18.04 nhưng không bao giờ có thể chạy firefox với nó.
Cảm ơn Rafael Muynarsk đã trả lời cho việc khởi động tôi. Đây là những gì tôi đã làm
apt install festival speech-dispatcher-festival festvox-{rablpc16k,kallpc16k,kdlpc16k} sox
festvox-{rablpc16k,kallpc16k,kdlpc16k} là ngôn ngữ giọng nói cho tiếng Anhsox, không có nó chỉ là một phần của văn bản nơi đọcsudo vim /etc/speech-dispatcher/speechd.conf
Vô hiệu hóa espeakcấu hình liên quan và kích hoạt festivalmột
#AddModule "espeak-ng" "sd_espeak-ng" "espeak-ng.conf"
AddModule "festival" "sd_festival" "festival.conf"
#DefaultModule espeak-ng
DefaultModule festival
festivalmáy chủKhông có nó tôi chỉ có một số tổng hợp.
/usr/bin/festival --server
Sau đó vào chế độ xem độc giả và thử nó.