跳转到主要内容

JupyterLab语音命令

项目描述

jupyterlab-voice-control

Github Actions Status Binder PyPI version

⚠️ 此扩展是实验性的 ⚠️

JupyterLab语音命令扩展依赖于实验性的语音识别API,不适合在生产环境中使用。您可以在caniuse.com/speech-recognition上检查当前支持情况。

请注意,语音识别方法是浏览器的一个实现细节,某些浏览器,包括Google Chrome,可能会将您的语音录音发送到云端进行识别。

虽然目前只是一个概念验证,但如果您发现此扩展有用/有前景,请通过打开一个新问题与我们联系,任何反馈都将非常感激。

使用方法

要使用此扩展,请在状态栏中查找麦克风(麦克风图标)图标。

Initial icon location in the status bar

点击禁用麦克风图标(disabled microphone icon)以启动语音识别(或使用 Alt + v 快捷键)。您需要同意浏览器使用您的麦克风。

Microphone access dialog in Chrome

您可以使用在 命令面板 中可用的任何命令,例如尝试“下载”或“运行所选单元格”。

有时语音识别可能不准确,或者您可能记错了命令的名称。在这种情况下,语音控制助手将通过带有“您是否想...”字样的提示和建议显示在状态栏上。

Suggestion saying "Did you mean New Launcher?"

  • 您可以通过说出“是”来接受第一个建议。
  • 要选择第二个建议,请说出“第二个建议”,依此类推。
  • 如果您更喜欢连续检查状态栏,可以使用语音合成选项(在设置中可用)。
  • 可以在设置中调整将类似发音的短语作为建议包含的阈值。

如果没有错误或建议,识别到的语音将显示在状态栏上,并带有置信度估计。

Recognised phrase "close all tabs" with 87% confidence

默认情况下,置信度低(<50%)的命令将不会执行(因为认为在可能具有破坏性的操作中更安全),但您可以在设置中更改阈值。

创建自定义命令

在设置编辑器中,您可以像配置快捷键一样为命令分配自定义短语。我们将您需要说的以执行命令的词语称为触发短语

语音控制扩展提供了用于与界面交互的额外命令,例如输入文本(vc:insert-text)、接受建议(vc:accept-suggestion)、停止识别(vc:stop-listening)等。

触发短语可以是正则表达式,并包括命名捕获组。捕获的组将被作为参数传递给命令(与预先指定的参数合并,如果有,组将覆盖预先指定的参数)。例如,要创建一个打开文件的命令,我们可以指定

{
  "phrase": "^open file (?<path>.*)",
  "command": "filebrowser:open-path"
}

^确保只有以“打开文件”开头的短语会被匹配。

我们提供命令 vc:open-notebook(默认为open notebook (?<path>.*)),它会自动添加笔记本文件扩展名(.ipynb),因为这对于语音识别软件可能是个问题。

要求

  • JupyterLab >= 3.4(可能适用于3.x的旧版本,但未测试)

安装

要安装扩展,请执行

pip install jupyterlab-voice-control

卸载

要删除扩展,请执行

pip uninstall jupyterlab-voice-control

贡献

开发安装

注意:您需要NodeJS来构建扩展包。

jlpm 命令是JupyterLab安装的yarn的固定版本。您可以使用 yarnnpm 代替下面的 jlpm

# Clone the repo to your local environment
# Change directory to the jupyterlab-voice-control directory
# Install package in development mode
pip install -e .
# Link your development version of the extension with JupyterLab
jupyter labextension develop . --overwrite
# Rebuild extension Typescript source after making changes
jlpm build

您可以在不同的终端中同时监视源目录并运行JupyterLab,以监视扩展源的变化并自动重新构建扩展。

# Watch the source directory in one terminal, automatically rebuilding when needed
jlpm watch
# Run JupyterLab in another terminal
jupyter lab

在监视命令运行时,每次保存的更改将立即在本地构建并可供正在运行的JupyterLab使用。刷新JupyterLab以在浏览器中加载更改(您可能需要等待几秒钟,直到扩展重新构建)。

默认情况下,jlpm build 命令会为此扩展生成源映射,以便使用浏览器开发者工具进行调试。要同时为 JupyterLab 核心扩展生成源映射,可以运行以下命令:

jupyter lab build --minimize=False

开发模式卸载

pip uninstall jupyterlab-voice-control

在开发模式下,您还需要删除由 jupyter labextension develop 命令创建的符号链接。要找到其位置,您可以运行 jupyter labextension list 以确定 labextensions 文件夹的位置。然后您可以在该文件夹中删除名为 jupyterlab-voice-control 的符号链接。

测试扩展

前端测试

此扩展使用 Jest 对 JavaScript 代码进行测试。

要执行它们,请执行:

jlpm
jlpm test

集成测试

此扩展使用 Playwright 进行集成测试(也称为用户级测试)。更准确地说,JupyterLab 辅助工具 Galata 用于处理在 JupyterLab 中测试扩展。

更多详细信息请参阅 ui-tests 中的 README。

打包扩展

请参阅 RELEASE

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分布

jupyterlab-voice-control-0.2.4.tar.gz (516.9 kB 查看哈希值)

上传时间 源代码

构建分布

jupyterlab_voice_control-0.2.4-py3-none-any.whl (1.1 MB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面