Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Paper: Voice Computing with Python in Jupyter Notebooks #934

Open
wants to merge 41 commits into
base: 2024
Choose a base branch
from

Conversation

MooersLab
Copy link
Collaborator

@MooersLab MooersLab commented Jun 1, 2024

If you are creating this PR in order to submit a draft of your paper, please name your PR with Paper: <title>. An editor will then add a paper label and GitHub Actions will be run to check and build your paper.

See the project readme for more information.

Editor: Amey Ambade @ameyxd

Reviewers: Shashwat Shah @shaswatshah and Bobby Jackson @rcjackson

@hongsupshin hongsupshin added the paper This indicates that the PR in question is a paper label Jun 1, 2024
Copy link

github-actions bot commented Jun 1, 2024

Curvenote Preview

Directory Preview Checks Updated (UTC)
papers/blaine_mooers 🔍 Inspect 25 checks passed (1 optional) Jun 28, 2024, 3:58 AM

rowanc1

This comment was marked as outdated.

@MooersLab
Copy link
Collaborator Author

Thank you rowanc!

I made changes to the local copy main.md after your suggestions were made.
I made the suggested changes to the local copy and push it.

@ameyxd ameyxd self-assigned this Jun 4, 2024
papers/blaine_mooers/main.md Outdated Show resolved Hide resolved
@ameyxd ameyxd removed their assignment Jun 11, 2024
@ameyxd
Copy link
Contributor

ameyxd commented Jun 20, 2024

Review requests sent to @shaswatshah and @rcjackson

@MooersLab
Copy link
Collaborator Author

@fwkoch Thank you for the suggestion on the formatting of the two figures! The changes have been made and pushed.

@ameyxd
Copy link
Contributor

ameyxd commented Jul 2, 2024

Requested reviews again from @shaswatshah and @rcjackson.

# Voice Computing with Python in Jupyter Notebooks
title: Voice Computing with Python in Jupyter Notebooks
abstract: |
Jupyter is a popular platform for writing literate programming documents that contain computer code and its output interleaved with prose that describes the code and the output. It is possible to use one's voice to interact with Jupyter notebooks. This capability opens up access to those with impaired use of their hands. Voice computing also increases the productivity of workers who are tired of typing, and increases the productivity of those workers who speak faster than they can type. Voice computing can be divided into three activities: speech-to-text, speech-to-command, and speech-to-code. Several automated speech recognition software packages operate on Jupyter notebooks and support these three activities. We will provide examples of these activities as they pertain to applications of Python in our research on the molecular structures of proteins and nucleic acids important in medicine. Several software tools at MooersLab on GitHub facilitate the use of voice computing software in Jupyter.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would recommend rephrasing the sixth sentence. I did not see anything in here with regards to nucleic acids and proteins, so I would make this sentence more general, since you show an example of an equation being rendered.

While those who have lost use of their hands must rely solely on their voice, other users can enhance their prose generation with their voice to boost their productivity and give their hands a rest when fatigued from typing. This inclusive approach enhances the Jupyter notebook experience for all users, regardless of their physical abilities.
In other words, most users can use their voices to complement their keyboard use.
For example, dictating prose in Markdown cells is an obvious application of voice computing in Jupyter.
The ease of generating prose via speech can promote more complete descriptions of the computations executed in adjacent code cells.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How easy is the installation for someone who cannot use their hands to type? Have you experimented with using voice commands for the conda install?

For Jupyter code cells, we mapped voice commands to chunks of code of various sizes.
In analogy to tab triggers with conventional tab-triggered snippets in advanced text editors, we call these voice commands that trigger a text replacement *voice triggers*.

To facilitate voice commands in Jupyter notebook cells, we have developed sets of voice-triggered snippets for use in Markdown or code cells.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggest adding "Python" before code

To facilitate voice commands in Jupyter notebook cells, we have developed sets of voice-triggered snippets for use in Markdown or code cells.
We are building on our prior experience with tab-triggered code snippets in text editors [@Mooers2021TemplatesForWritingPyMOLScripts] and domain-specific code snippet libraries for Jupyter [@Mooers2021APyMOLSnippetLibraryForJupyterToBoostResearcherProductivity].
We have made libraries of these voice-triggered snippets for several of the popular modules of the scientific computing stack for Python.
Although the Jupyter environment supports polyglot programming, we have restricted our focus to Python and Markdown.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggest removing and incorporating the previous suggestion to make the paper more concise.

We have made libraries of these voice-triggered snippets for several of the popular modules of the scientific computing stack for Python.
Although the Jupyter environment supports polyglot programming, we have restricted our focus to Python and Markdown.
While some code snippets are one-liners, most code snippets span many lines and perform a complete task, such as generating a plot from a data file.
These libraries provide code that is known to work, unlike the situation with chatbots, which do not always return working code.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any reference you can provide on the code functionality from chatbots compared to these libraries?

Tab-triggered code snippets are standard in most text editors, whereas voice-triggered snippets have yet to become widespread in standard text editors.
One advantage of Jupyter Notebooks is that they run in the browser, where several automated Speech Recognition software packages operate (e.g., Voice-In Plus, Serenade, and Talon Voice).
We developed our libraries for Voice In Plus software because of its gentle learning curve and straightforward customization.
We did this to meet the needs of the broadest population of users.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section should be where you justify your use of Voice In Plus.

In addition, AI assistance in scientific writing has to be disclosed upon manuscript submission.
Some publishers will not accept articles written with the help of AI-writing assistants.
This could limit the options available for manuscript submission if one uses such an assistant and has the manuscripts rejected by a publisher that accepts such assistants.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have a quantitative assessment of ChatGPT's error rate, or a reference to one? I would also move and integrate this section to the introduction that provides the motivation for your Voice in Plus library.

Although the extension's name suggests it uses GitHub's Copilot, it uses whisper-1 and ChatGPT3.
This extension requires an API key for ChatGP3.
The robustness of our approach is that the Voice-In Plus software will always operate within Jupyter Lab when Jupyter is run on a web server.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would make this into a table in your introduction to motivate why your library is used.


These caveats are minor annoyances.
We think that productivity gains out of the disruptions caused by these annoyances.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this section is needed. It can be moved to a caveats or "common issues" section in the documentation, with the link provided in the paper.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I found the concept of the authors' library to be very compelling. I've had an intern who could not use his hands, so having something like this would have been very helpful. However, when I read the paper, I found the organization to be disjoint with various aspects of the paper in the wrong section. I've provided inline suggestions for rearranging the paper.

In addition, I think, for me to accept the publication, the authors need to either cite or perform a quantitative analysis of the code failure rate of ChatGPT compared to Voice in Plus to show that this is an improvement for Python and code markdown cell writing compared to current tools.

@MooersLab
Copy link
Collaborator Author

MooersLab commented Jul 2, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
paper This indicates that the PR in question is a paper ready-for-review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants