如何设置浏览器调用命令的选项?

如何设置浏览器调用命令的选项?

目前当语音合成标记语言(SSML)被设置为text属性SpeechSynthesisUtterance实例位于或者火狐浏览器Web 浏览器中,SSML 不会在 *nix 处进行解析,如音频输出所示speechSynthesis.speak()称呼。

浏览浏览器的源代码speech-dispatcher似乎是由.speak()其中spd-sayespeak,如果配置为这样做,则可以由 调用speech-dispatcher

spd-say有一个x选项

-x, --ssml          Set SSML mode on (default: off)

espeak有一个m选项

-m     Interpret SSML markup, and ignore other < > tags

已创建用户配置文件以供speech-dispatcher使用

spd-conf -u

文档指出,用户配置文件可用于为特定客户端设置参数

4.1.6 参数设置命令

可以使用以下参数设置命令。对于配置和历史客户端,还有用于设置某些其他连接和所有连接的值的函数。下面分别列出它们。

C API 函数:int spd_set_data_mode(SPDConnection *connection, SPDDataMode mode)设置语音调度程序数据模式。目前,支持纯文本和 SSML。如果您想要使用索引标记或在文本中包含语音参数的更改,则 SSML 特别有用。

mode 是请求的数据模式:SPD_DATA_TEXTSPD_DATA_SSML

问题

  1. 调用时,如何为客户端 Chromium 和 Firefox 浏览器设置-xforspd-say-mforespeak命令中的一个或两个的默认选项?~/.config/speech-dispatcher/speechd.conf.speak()

  2. 如何调整源代码火狐浏览器浏览器默认为传递给?的属性设置的文本设置-x或选项-mSpeechSpeechSynthesisUtterance textwindow.speechSynthesis.speak()

答案1

另一种通常有效的方法是:重命名二进制文件,使用原始名称编写一个包装器脚本,该脚本调用重命名的二进制文件,并包含您想要的选项。 Hacky,但可能更简单。 (如果您不习惯 shell 编程,请查阅$*)。

另一种黑客方法是将浏览器二进制文件中的二进制调用名称替换为包装器脚本的名称;这样您就可以保留标准名称。

缺点是,如果您更新浏览器,则必须重做此操作,尽管它可以使用以下脚本grep进行编写dd

grep -FobUa 'spd-say' browser_binary
echo -n 'spd-wrp' | dd bs=1 of=browser_binary seek=12345 conv=notrunc

其中spd-wrp是包装脚本的名称,以及12345grep 找到它的位置。根据您的二进制文件的情况,使用多次出现的变体等。

相关内容