我使用 Dragon NaturallySpeaking 进行语音识别,通过语音编写 LaTeX 文档。它让我的书写速度比在键盘上打字快得多(~ 100 WPM vs. 50),我发现语音命令比键盘快捷键更容易记住,从长远来看,它可以预防 RSI。
我希望能够高效地通过语音编写 LaTeX 数学公式。我该如何实现?是否存在专用于 LaTeX 的有用语音命令库?我应该使用 Dragon NaturallySpeaking 扩展程序(例如 NatLink、DragonFly 或 Vocola)吗?
答案1
(这是我在 Math Stack Exchange 上发布的答案的编辑版本。原始问题是关于由于残疾而无法手写进行数学运算。关联。)
(背景:我患有慢性疼痛,打字非常痛苦。)
我使用基于纳拉泰克斯口述我所有的正式数学知识,包括我要上交的课程作业。基本上,NatLaTeX 定义了许多常用 LaTeX 命令的可口述形式,包括大多数数学表达式所需的一切。使用 Dragon NaturallySpeaking 中的自定义词汇表,我可以口述包含此 NatLaTeX 源的纯文本文件。然后,我使用 NatLaTeX 项目中的脚本将我口述的文本转换为实际的 LaTeX 源,然后我可以使用标准 LaTeX 编译器将其编译成排版良好的数学知识。(实际上,我使用批处理文件来自动化该过程。)请注意,我对 NatLaTeX 进行了几处修改,以使其针对数学进行优化(原作者是物理学家)并根据 LaTeX 的变化进行调整。如果您想要修改后的脚本的副本,请随时与我联系。我最终确实打算将它们发布在网上的某个地方,但我需要先花一些时间更新文档(而且在我准备综合考试时,很难证明花时间更新文档是合理的!)。
NatLaTeX 的优点包括灵活性和速度(与其他一些系统不同,无需在“命令”之间暂停)。缺点包括学习难度高,并且无法实时查看您的工作(排版或 LaTeX 源代码)。NatLaTeX 比 LaTeX 更冗长,因此更难阅读,但可以使用 Dragon 中的内置命令进行编辑,因为所有内容都可以朗读。
您也无法享受使用具有语法高亮等功能的文本编辑器的优势,因为 Dragon 仅在几个编辑器中具有“完整文本控制”(这对于通过语音轻松编辑必不可少)。出于这个原因,我实际上在 MS Notepad 中编写了相当多的 NatLaTeX。頁面是一个更好的选择,但仍然不是最好的选择。
这里有几个例子来展示 NatLaTeX 的工作原理。
离散数学示例:
NatLaTeX 输入(使用 Dragon 口述)
Given a poset "(P, precedes)", a collection of linear extensions" {calligraphy R }
equals left curly brace precedes sub one, precedes sub two, low dots, precedes sub
k right curly brace" is called a ``realizer'' of "P" if "precedes equals
intersection of sub {i equals one } to the k precedes sub k", where each relation
"precedes sub i" is interpreted as a set of ordered pairs and "intersection of"
is set intersection. Equivalently, "{calligraphy R }" is a realizer of "P" if, for
all "p, q in P", "p precedes q" if and only if "p precedes sub i q" for all "one
less than or equal to i less than or equal to k".
LaTeX 输出
Given a poset \( ( P , \prec )\), a collection of linear extensions \(
{ \mathcal R } = \{ \prec_1 , \prec_2 , \ldots , \prec_k \}\) is called
a ``realizer'' of \( P\) if \( \prec = \bigcap_{ i = 1 }^k \prec_k\),
where each relation \( \prec_i\) is interpreted as a set of ordered
pairs and \( \bigcap\) is set intersection. Equivalently, \( { \mathcal
R }\) is a realizer of \( P\) if, for all \( p , q \in P\), \( p \prec
q\) if and only if \( p \prec_i q\) for all \( 1 \leq i \leq k\).
分析示例:
NatLaTeX 输入(使用 Dragon 口述)
begin theorem [Monotone Convergence Theorem]
Let "left curly brace f sub n right curly brace sub {n equals one } to the infinity"
be a sequence of nonnegative measurable functions with "f sub one less than or
equal to f sub two less than or equal to low dots less than or equal to f sub n less
than or equal to f sub {n +1 } less than or equal to low dots" and "limit of sub n
f sub n equals f" (pointwise). Then, "f" is measurable and
@begin{equation}
limit of sub {n right arrow infinity } integral f sub n d Greek mu equals integral
limit of sub {n right arrow infinity } f sub n d Greek mu equals integral f d Greek mu
@end{equation}
end theorem
LaTeX 输出
\begin{theorem}[Monotone Convergence Theorem]
Let \( \{ f_n \}_{ n = 1 }^\infty\) be a sequence of nonnegative
measurable functions with \( f_1 \leq f_2 \leq \ldots \leq f_n \leq f_{ n
+ 1 } \leq \ldots\) and \( \lim_n f_n = f \) (pointwise). Then, \( f \) is
measurable and
\begin{equation}
\lim_{ n \rightarrow \infty } \int f_n d \mu = \int \lim_{ n
\rightarrow \infty } f_n d \mu = \int f d \mu
\end{equation}
\end{theorem}
答案2
2018 年 8 月 14 日编辑:最初我在一个网站上销售该软件,但最近我将其开源了。
对于 Mac 用户,我编写了一款专门用于此目的的应用程序,名为 SpeakLaTeX。它适用于 Dragon for Mac v6,尽管 v5 也可能适用。有一个演示视频:
https://www.youtube.com/watch?v=ay1LyHgUIjY
自定义界面专为想要完全控制页面上显示内容的用户而设计。您可以自由扩展或更改默认命令。
有关详细信息,请参阅https://github.com/danielmartin0/SpeakLaTeX下载链接为https://github.com/danielmartin0/SpeakLaTeX/releases。
答案3
继 Alex 关于 caster 的帖子之后,此功能现已发布为数学飞,Github 页面上有完整文档和示例视频。它建立在 Dragon Professional Individual 之上,并使用 Natlink 加载其语法。LaTeX 模块通过说“启用 latex”来启用,并提供各种用于插入 LaTeX 语法的命令。
例如,说“开始等式”将插入:
\begin{equation} \end{equation}
和“符号分数”将产生:
\frac{}{}
可以非常轻松地更改命令并随时添加新命令,在我看来,这是一种非常自然和直观的 LaTeX 口述方式。还有用于口述到 LyX 和 Scientific Notebook 等所见即所得编辑器的语法,无需学习 LaTeX 语法。
要查看完整的命令列表,请查看LaTeX 模块的文档。
答案4
我还没有用过这个,所以我不能评论它的效果如何,但是语音代码扩展了 Dragon Dictate 并且看起来它可以处理这个问题。
目前为止它仅适用于 Mac,Windows/Linux 即将推出。
观看此 YouTube 视频,了解语音代码的实际示例。该示例是用 Ruby 编写的,但该过程看起来可以转移。
这听起来有点疯狂,但它本身就是一种通过语音编码的口语语言,所以它看起来应该支持通过语音命令有效构建 LaTeX 方程式所需的所有符号。