asr2clip

asr2clip – Speech-to-Text Clipboard Tool

中文

This tool is designed to recognize speech in real-time, convert it to text, and automatically copy the text to the system clipboard. The tool leverages API services for speech recognition and uses Python libraries for audio capture and clipboard management.

Prerequisites

Before you begin, ensure you have the following ready:

Installation

Option 1: Install via pip or pipx

You can install asr2clip directly from PyPI using pip or pipx:

# Install using pip
pip install asr2clip

# Alternatively, install using pipx (recommended for isolated environments)
pipx install asr2clip

Option 2: Install from source

  1. Clone the repository (if applicable):
git clone https://github.com/Oaklight/asr2clip.git
cd asr2clip
  1. Install the required Python packages:
pip install -r requirements.txt

Option 3: Install using Conda

If you are using Conda, you can create an environment using the provided environment.yaml file:

conda env create -f environment.yaml
conda activate asr
  1. Set up your API key:
    • Create a asr2clip.conf file in the root directory of the project or in your ~/.config/ directory. A sample file asr2clip.conf.example is provided.
    • Add your API key to the asr2clip.conf file in YAML format:
api_key: your_api_key_here
api_base_url: https://api.openai.com/v1
model_name: whisper-1
  1. Note for Linux users: If you are using pyperclip on Linux, make sure to install xclip or xsel. You can install them using the following commands:
sudo apt-get install xsel # Basic clipboard functionality, same to asr2clip
sudo apt-get install xclip # More advanced functionality, same to asr2clip

Usage

  1. Run the tool:
asr2clip
  1. Start speaking:
    • The tool will start capturing audio from your microphone.
    • It will send the audio to the API for speech recognition.
    • The recognized text will be automatically copied to your system clipboard.
  2. Stop the tool:
    • Press Ctrl+C to stop the tool.

Command Line Options

asr2clip --input /path/to/audio/file.mp3
cat /path/to/audio/file.wav | asr2clip --stdin
asr2clip --duration 10
asr2clip --generate_config
asr2clip --quiet
asr2clip --config /path/to/config.conf

Example

$ ./asr2clip.py --duration 5
Recording for 5 seconds...
Recording complete.
Transcribing audio...
Transcribed Text:
-----------------
1,2,3,3,2,1. This is the English test.
The transcribed text has been copied to the clipboard.

Troubleshooting


Contributing

If you would like to contribute to this project, please fork the repository and submit a pull request. We welcome any improvements or new features!


License

This project is licensed under the GNU Affero General Public License v3.0. See the LICENSE file for details.