Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
772 commits
Select commit Hold shift + click to select a range
9843278
[test] show_all case
ftnext Dec 21, 2024
6477efa
[bugfix] enableWordTimeOffsets is not supported; snake_case!
ftnext Dec 21, 2024
9aa5504
[test] Cloud Speech-to-Text V1 parameters
ftnext Dec 21, 2024
b04353b
Merge pull request #808 from ftnext/test/google-cloud-speech
ftnext Dec 21, 2024
ac03f3f
[bugfix] Remove trailing space
ftnext Dec 22, 2024
4c2d234
[feat] Delegate to google-auth
ftnext Dec 22, 2024
a97ccb7
[docs] Links to setup local credentials
ftnext Dec 22, 2024
a5a2fb2
[style] Remove unused import
ftnext Dec 22, 2024
9361057
Merge pull request #810 from ftnext/bugfix/recognize-google-cloud-tra…
ftnext Dec 22, 2024
0fb14ff
Merge pull request #811 from ftnext/tweak/google-application-credentials
ftnext Dec 22, 2024
5a86368
[bugfix] ValueError: Unknown field for RecognitionConfig
ftnext Dec 25, 2024
b9fe331
[bugfix] DO NOT use assert as data validation
ftnext Dec 25, 2024
6689acc
[refactor] Rename same as API parameter
ftnext Dec 25, 2024
ce9f12b
[refactor] Extract logic to build config
ftnext Dec 25, 2024
d6afb53
[feat] Migrate to Google ADC (not paste credential JSON)
ftnext Dec 25, 2024
43a440a
[docs] Refine docs
ftnext Dec 25, 2024
9737a76
[docs] Add link to setup Google Cloud project
ftnext Dec 25, 2024
49dc9ad
[docs] Update signature
ftnext Dec 25, 2024
53dccb5
[refactor] Tweak import
ftnext Dec 25, 2024
346ea8c
Merge pull request #812 from ftnext/feat/google-cloud-parameters
ftnext Dec 28, 2024
6f956d0
[chore] Bump up 3.13.0
ftnext Dec 29, 2024
58e62fd
[bugfix] Sphinx reSt not supported in PyPI
ftnext Dec 29, 2024
38b076a
[chore] Make distribution easier a little
ftnext Dec 29, 2024
29aac1e
[refactor] Extract whisper_local
ftnext Dec 29, 2024
73467ba
[docs] Add type hints
ftnext Dec 29, 2024
8d159aa
[docs] Dpn't repeat yourself
ftnext Dec 29, 2024
6fdc043
[docs] Update model parameter
ftnext Dec 29, 2024
fadc9a5
[docs] Type hints for parameters
ftnext Dec 29, 2024
5b67acf
[feat] Refine trascribe parameters
ftnext Dec 29, 2024
a88e099
[refactor] Extract to support Whisper variants in future
ftnext Dec 29, 2024
aae445a
[refactor] Introduce whisper_local package
ftnext Dec 30, 2024
4fd2770
[refactor] Extract whisper_api package
ftnext Dec 30, 2024
72f94a8
[refactor] Apply package structure
ftnext Dec 30, 2024
e9ce763
[docs] Tweak references
ftnext Dec 30, 2024
c0ccb9e
[style] Docstring
ftnext Dec 30, 2024
5ac1263
[chore] Detect Sphinx roles in README.rst
ftnext Dec 30, 2024
97da306
[bugfix] Build on Python 3.9
ftnext Dec 30, 2024
3798033
[test] Use Whisper model response
ftnext Dec 30, 2024
e61f29e
[docs] Define Segment dict
ftnext Dec 30, 2024
48e3ed9
[refactor] Tweak name (not override)
ftnext Dec 30, 2024
46c3b75
[bugfix] Remove unused import
ftnext Dec 30, 2024
5700d3d
[chore] Tweak flake8 options
ftnext Dec 30, 2024
1a56fd5
Merge pull request #813 from ftnext/refactor/whisper-local
ftnext Dec 30, 2024
6761719
[feat] Support faster-whisper with adapter
ftnext Dec 30, 2024
cbca8b9
[refactor] Reduce mock in whisper tests
ftnext Dec 30, 2024
7df1253
[refactor] Test class to add other case easier
ftnext Dec 30, 2024
36b0464
[test] GPU available case
ftnext Dec 30, 2024
3dbbe17
[feat] Specify transcribe's parameters
ftnext Dec 30, 2024
2ee6044
[refactor] Extract AudioData fixture
ftnext Dec 30, 2024
4dd2985
[refactor] Patch sf.read as fixture
ftnext Dec 30, 2024
8b2d91c
[refactor] Extract mock creation into fixtures
ftnext Dec 30, 2024
d502a2e
[docs] Add type hints
ftnext Dec 30, 2024
5da7fdf
[chore] faster-whisper extra
ftnext Dec 30, 2024
5c34084
[docs] Add parameters' type hint
ftnext Dec 30, 2024
5f55e92
[bugfix] show_dict=True
ftnext Dec 30, 2024
a422db0
[docs] Add docstring
ftnext Dec 30, 2024
ec8d05f
[docs] Add faster_whisper in reference
ftnext Dec 30, 2024
4f2506a
[feat] Users can call Recognizer.recognize_faster_whisper()
ftnext Dec 30, 2024
e23338a
[docs] faster-whisper installation
ftnext Dec 30, 2024
3fea948
[bugfix] Install numpy in dev environment
ftnext Dec 30, 2024
070d02f
[bugfix] Run (=skip) tests without faster-whisper
ftnext Dec 30, 2024
0edcc43
[feat] Use device="auto" (default)
ftnext Dec 30, 2024
ef69c4a
[feat] Run manually as e2e
ftnext Dec 30, 2024
ac556c1
[feat] Enable to specify initialization parameters
ftnext Dec 30, 2024
e663cb0
[docs] Fix type hint
ftnext Dec 30, 2024
dd67b7c
Merge pull request #814 from ftnext/feature/faster-whisper
ftnext Dec 30, 2024
94f0f55
[chore] Remove recognize_whisper_api (Use recognize_openai instead)
ftnext Dec 31, 2024
bcd4266
Merge pull request #815 from ftnext/chore/remove-recognize-whisper-api
ftnext Dec 31, 2024
b795baf
chore: Make copyright year of license not need to update
ftnext Jan 4, 2025
f2fc4f7
Merge pull request #818 from ftnext/chore/copyright-year
ftnext Jan 4, 2025
71cacd8
Bump up 3.14.0
ftnext Jan 14, 2025
8afab68
bugfix: Pass CI (ubuntu-latest is now 24.04)
ftnext Jan 14, 2025
cd5f4c4
bugfix: missing replace
ftnext Jan 14, 2025
e4af8de
Merge pull request #820 from Uberi/hotfix-pocketsphinx-test-failure
ftnext Jan 14, 2025
c9f0027
docs: Explain dependencies
ftnext Jan 24, 2025
8437876
chore: Try pocketsphinx 5 to fix #821
ftnext Jan 24, 2025
f0a5041
test: Fix expected as of pocketsphinx 5.0.x (as workaround)
ftnext Jan 25, 2025
3e34c3f
refactor: Fix deprecation
ftnext Jan 25, 2025
6f5dc24
refactor: Extract recognize_sphinx
ftnext Jan 25, 2025
9b05bc7
docs: DRY
ftnext Jan 25, 2025
88b1f45
docs: Show by type hint (not use assertion as validation)
ftnext Jan 25, 2025
99654c4
refactor: pocketsphinx 5.x is Installed normally
ftnext Jan 25, 2025
97b5b50
docs: bambocher/pocketsphinx-python -> cmusphinx/pocketsphinx
ftnext Jan 25, 2025
41ee7a3
Merge pull request #823 from ftnext/ubuntu2404-pocketsphinx
ftnext Jan 25, 2025
34e72fe
Bump up 3.14.1
ftnext Jan 25, 2025
d3a30bf
chore: PyPI publish recipe
ftnext Jan 25, 2025
7e4fa73
chore: Migrate ISSUE_TEMPLATE directory from file
ftnext Jan 26, 2025
dad115b
chore: Use issue template only
ftnext Jan 26, 2025
ed10783
chore: Install google-api-python-client from PyPI
ftnext Jan 28, 2025
a6d3da0
chore: Remove outdated version PyAudio distribution
ftnext Jan 28, 2025
e000c61
chore: Remove outdated version PocketSphinx distribution
ftnext Jan 28, 2025
045eadc
chore: Remove outdated manual
ftnext Jan 28, 2025
7c0ac7a
bugfix: Numbering
ftnext Jan 30, 2025
6fec47e
Merge pull request #826 from ftnext/tidy-third-party-directory
ftnext Jan 30, 2025
09a88c2
[feat] Users can run openai module
ftnext Mar 22, 2025
0e6c666
[feat] Support OpenAI new transcribe models
ftnext Mar 22, 2025
e2a9b19
[feat] Users can specify language if needed
ftnext Mar 23, 2025
c08909a
Merge pull request #833 from ftnext/openai-speech-to-text-202503
ftnext Mar 23, 2025
ba696ed
Bump up 3.14.2
ftnext Mar 23, 2025
d61ac30
[feat] Users can create AudioData from file path
ftnext Mar 23, 2025
799871d
[refactor] Create by from_file() method
ftnext Mar 23, 2025
bab2063
[refactor] Create AudioData from specified file
ftnext Mar 23, 2025
3f0a4e2
[refactor] Load AudioData from file in example
ftnext Mar 23, 2025
c244cb2
[refactor] Use AudioData.from_file()
ftnext Mar 23, 2025
4e35d4b
[docs] AudioData.from_file()
ftnext Mar 23, 2025
b43441c
Merge pull request #834 from ftnext/refactor/audiodata-factory-method
ftnext Mar 24, 2025
5606d44
Update vosk's URL model list
sebampuero Apr 15, 2025
0747dcc
Merge pull request #836 from sebampuero/update_vosk_model_download_url
ftnext Apr 15, 2025
7b590ef
[feat] Add -p/--prompt
ftnext May 5, 2025
380465c
[feat] Support --model short version (-m) for option's consistency
ftnext May 5, 2025
72da569
[feat] Users enable logging of transcription API call
ftnext May 5, 2025
c988e48
Merge pull request #837 from ftnext/feature/pass-prompt-openai
ftnext May 6, 2025
c0902ec
feat: add some type inference for consumers
hamirmahal May 11, 2025
203c73a
chore: Bump up 3.14.3
ftnext May 12, 2025
9d77950
feat: Download with vosk model
ftnext May 17, 2025
1d37d8b
chore: vosk extra
ftnext May 17, 2025
c70f9e7
test: Developers can test recognize_vosk() in cloned repository
ftnext May 17, 2025
93086ff
chore: Add vosk test in CI
ftnext May 17, 2025
898aef1
feat: Handle potential download errors (thanks Copliot review)
ftnext May 17, 2025
3f3e0be
Merge pull request #842 from ftnext/test-recognize-vosk
ftnext May 17, 2025
484ab51
refactor: Extract recognize_vosk
ftnext May 18, 2025
3c9fc0b
docs: Add minimum documentation
ftnext May 18, 2025
1a38c2b
docs: Install with vosk extra
ftnext May 18, 2025
c75c86d
Merge pull request #843 from ftnext/refactor-vosk
ftnext May 18, 2025
46a82ec
docs: update Vosk signature
ftnext May 18, 2025
d489e45
docs: Fix Codex's reST bug
ftnext May 18, 2025
e2e9565
refactor: Extract into test fixture
ftnext May 18, 2025
c223be4
docs: Refine recognize_vosk's type hint
ftnext May 18, 2025
54cbd11
chore: Ignore E704 multiple statements on one line
ftnext May 18, 2025
9d76ec2
Remove obsolete setup_vosk.py
ftnext May 18, 2025
3c72772
style: thanks Copilot's nitpick reviews
ftnext May 18, 2025
f81504d
Merge pull request #845 from ftnext/codex/add-verbose-argument-to-mod…
ftnext May 18, 2025
5ba4b92
style: Black to pass make lint
ftnext May 18, 2025
ddf10cb
docs: Where to download vosk model
ftnext May 18, 2025
46e7056
Merge pull request #846 from ftnext/codex/replace-requests-with-urlli…
ftnext May 18, 2025
e31ff95
Change Vosk model download location to speech_recognition package dir…
openhands-agent May 19, 2025
c354a58
Change Vosk model download location to speech_recognition package dir…
openhands-agent May 19, 2025
5cb3576
[feat] Tidy up vosk model download
ftnext May 20, 2025
c87f5da
Merge pull request #840 from hamirmahal/feat/additional-type-inferenc…
ftnext Sep 13, 2025
48c06c5
[docs] Add type hint from reference
ftnext Sep 14, 2025
b377d31
[docs] See docstring to make DRY
ftnext Sep 14, 2025
1b3ccff
Merge pull request #852 from ftnext/followup-additional-type-inferenc…
ftnext Sep 14, 2025
c0fb0fd
Include soundfile in faster-whisper extra
Harmon758 Oct 26, 2025
8df8fba
Merge pull request #856 from Harmon758/faster-whisper-extra-fix
ftnext Oct 28, 2025
83162d0
Add a blurb about Recall.ai to README, for meeting transcription
Uberi Nov 16, 2025
be839dd
Merge branch 'master' into vosk-model-location
ftnext Nov 17, 2025
767030d
[bugfix] Debug vosk_model_path
ftnext Nov 17, 2025
5a8a5e1
[bugfix] Not use sprc command
ftnext Nov 17, 2025
f3bb7f2
Oops, reorganize the readme to be a bit less confusing
Uberi Nov 18, 2025
5225634
[bugfix] Remove debug print
ftnext Nov 18, 2025
772bb9c
Merge pull request #847 from ftnext/vosk-model-location
ftnext Nov 18, 2025
57f2f28
chore: Add maintainer
ftnext Nov 19, 2025
cedfb44
chore: Bump up 3.14.4
ftnext Nov 19, 2025
5a92f66
fix: make arguments optional
KorigamiK Dec 24, 2025
38f74c1
Merge pull request #859 from KorigamiK/patch-1
ftnext Dec 24, 2025
a72cafb
docs: Fix Groq API broken documentation URLs
ftnext Dec 24, 2025
5fb32b5
Merge pull request #860 from ftnext/groq-fix-broken-docs-links
ftnext Dec 24, 2025
da6f88e
bugfix: Missing TypedDict
ftnext Dec 25, 2025
dea8619
bugfix: Missing Unpack
ftnext Dec 25, 2025
bc9d152
bugfix: Correct type hints
ftnext Dec 25, 2025
0402135
Merge pull request #861 from ftnext/bugfix-type-hints
ftnext Dec 25, 2025
7cae32a
refactor: Introduce TypeVar
ftnext Dec 30, 2025
f684e23
bugfix: AudioEncoding is int
ftnext Dec 30, 2025
fcc0e7a
style: Pass type check with ignore
ftnext Dec 30, 2025
a800a43
chore: type check deps
ftnext Dec 30, 2025
783ad35
chore: Start make typecheck
ftnext Dec 30, 2025
f5b98bb
bugfix: Fix TypedDict TypeError
ftnext Dec 30, 2025
ca74e36
chore: Run type check on GitHub Actions
ftnext Dec 30, 2025
f58a650
bugfix: missing PHONY
ftnext Dec 30, 2025
b13b1d5
bugfix: Revert to concise AudioEncoding type
ftnext Dec 30, 2025
d63e4d2
bugfix: Fix NameError in tests
ftnext Dec 30, 2025
2baf672
Merge pull request #862 from ftnext/run-type-check
ftnext Dec 30, 2025
f5c2cfc
chore: Bump up 3.14.5
ftnext Dec 31, 2025
22f103f
[test] Support OpenAI spec endpoint
ftnext Jan 1, 2026
42340a0
docs: Already support OpenAI-compatible self-hosted endpoint
ftnext Jan 2, 2026
bfb826d
Merge pull request #863 from ftnext/support-openai-spec-endpoint
ftnext Jan 2, 2026
e0dafc0
docs: Update OpenAI console URL
ftnext Jan 2, 2026
c709cd5
docs: Tweak OpenAI compatible endpoint support
ftnext Jan 2, 2026
816a9c9
refactor: Generic protocol
ftnext Jan 2, 2026
f0d37f6
Merge pull request #864 from ftnext/tweak-openai-doc
ftnext Jan 2, 2026
dff4758
Merge pull request #865 from ftnext/refactor-generic-protocol
ftnext Jan 2, 2026
acf7bd5
docs: DeepWiki badge
ftnext Mar 8, 2026
4e34905
style: fix indent (thanks Copilot review)
ftnext Mar 8, 2026
90c5bc2
Merge pull request #868 from ftnext/deepwiki-badge
ftnext Mar 8, 2026
f8c2d12
docs: Try to steer DeepWiki
ftnext Mar 8, 2026
eb3bbfd
docs: Add Code Wiki badge
ftnext Mar 8, 2026
15a1c97
Merge pull request #869 from ftnext/try-deepwiki-config
ftnext Mar 8, 2026
0775d31
docs: Mintlify auto generated docs badge
ftnext Mar 8, 2026
61ee630
Merge pull request #871 from ftnext/mintlify-auto-generated-docs-badge
ftnext Mar 8, 2026
c0ffd27
docs: context7.json
ftnext Mar 8, 2026
6028b7f
docs: Add context7 badge
ftnext Mar 8, 2026
1865396
Merge pull request #872 from ftnext/add-context7-json
ftnext Mar 8, 2026
5dcf18d
chore: Claim library (context7)
ftnext Mar 8, 2026
b7a4a47
Merge pull request #873 from ftnext/claim-context7
ftnext Mar 8, 2026
2c45834
bugfix: ONLY url and public_key
ftnext Mar 8, 2026
dc56396
Merge pull request #874 from ftnext/claim-context7
ftnext Mar 8, 2026
e8c6039
chore: Bump up 3.14.6
ftnext Mar 8, 2026
cb37a70
Exclude models data directory from package discovery
ftnext Mar 8, 2026
6db2056
Merge pull request #875 from ftnext/codex/fix-package-configuration-f…
ftnext Mar 8, 2026
1e410ed
Mark bundled FLAC binaries as executable
ftnext Mar 9, 2026
9cbb42f
Remove custom install hook from setup.py
ftnext Mar 9, 2026
1f8ca4f
Merge pull request #876 from ftnext/chmod-flac-binary
ftnext Mar 9, 2026
221a620
Migrate packaging config to pyproject.toml
codex Mar 9, 2026
14ab027
Refine pyproject metadata and use dynamic version
codex Mar 9, 2026
1c7d4c5
docs: Fix license with file
ftnext Mar 10, 2026
93ef770
docs: update source install command
ftnext Mar 10, 2026
01bd37b
build: read dynamic version from file
ftnext Mar 10, 2026
f78eb9e
build: drop redundant include-package-data
ftnext Mar 10, 2026
11a85c6
build: restore setup.py shim
ftnext Mar 11, 2026
bd3d64e
build: lower setuptools requirement
ftnext Mar 11, 2026
79d8e32
build: disable namespace package discovery
ftnext Mar 11, 2026
4158858
build: drop wheel build requirement
ftnext Mar 11, 2026
06bcad8
Merge pull request #877 from ftnext/chore/migrate-to-pyproject
ftnext Mar 11, 2026
2b206c6
chore: Bump up 3.15.0
ftnext Mar 11, 2026
2ca58e6
fix: remove tests from wheel
marmitar Mar 11, 2026
e85fc04
Merge pull request #878 from marmitar/fix/packaged-tests
ftnext Mar 11, 2026
22b18ad
build: update pyproject license metadata
ftnext Mar 11, 2026
d31698b
Fix package data config for models
ftnext Mar 11, 2026
3e2330c
Merge pull request #879 from ftnext/fix-pyproject-license-spdx
ftnext Mar 11, 2026
164b70d
Exclude bundled Vosk models from distributions
ftnext Mar 11, 2026
e4f138e
Merge branch 'master' into code-wiki-badge
ftnext Mar 11, 2026
5cb09e9
Merge pull request #880 from ftnext/fix-package-data-models
ftnext Mar 11, 2026
cea6b27
Merge pull request #870 from ftnext/code-wiki-badge
ftnext Mar 11, 2026
f90e7e8
chore: Bump up 3.15.1
ftnext Mar 11, 2026
561c4cc
chore: Secure GitHub Actions specifier
ftnext Mar 22, 2026
324cc4e
Merge pull request #883 from ftnext/gha-security
ftnext Mar 22, 2026
1ee5f04
docs: About AI-generated contributions
ftnext Mar 22, 2026
ccb40a5
Merge pull request #885 from ftnext/readme-ai-guideline
ftnext Mar 22, 2026
894229b
docs: Extract CONTRIBUTING
ftnext Mar 23, 2026
42e10f1
chore: rstcheck CONTRIBUTING
ftnext Mar 23, 2026
01fe497
Merge pull request #886 from ftnext/docs-refactor-contributing
ftnext Mar 23, 2026
84fede7
ci: Try actions/stale only for needinfo issues
ftnext Mar 24, 2026
9e23f53
Merge pull request #887 from ftnext/try-stale-action-needinfo
ftnext Mar 24, 2026
9589eeb
chore: Bump up 3.15.2
ftnext Mar 25, 2026
56a0cc4
Add Cohere Transcribe API support (recognize_cohere)
ftnext Mar 29, 2026
a8828f1
ci: remove no-build-isolation from unittest workflow
ftnext Mar 29, 2026
2e55772
Merge pull request #890 from ftnext/remove-no-build-isolation
ftnext Mar 29, 2026
70381c4
Merge branch 'master' into feature/cohere-transcribe-api
ftnext Mar 29, 2026
3424d9d
refactor(cohere): rename module entrypoint to recognize
ftnext Mar 29, 2026
4905b1a
ci: drop setuptools preinstall from unittest workflow
ftnext Mar 29, 2026
920526d
Merge pull request #889 from ftnext/feature/cohere-transcribe-api
ftnext Mar 29, 2026
311c9ba
Merge branch 'master' into codex/remove-setuptools-preinstall
ftnext Mar 29, 2026
43809f8
Merge pull request #891 from ftnext/codex/remove-setuptools-preinstall
ftnext Mar 29, 2026
b9566cc
Prepare CI for Python 3.14
ftnext Apr 2, 2026
ffc7cf6
chore: Bump up 3.16.0
ftnext Apr 5, 2026
e288c0d
Merge pull request #892 from ftnext/codex/python-314-ci-groundwork
ftnext Apr 5, 2026
3a5a472
test: restore local Whisper coverage on Python 3.13
ftnext Apr 5, 2026
64247af
Merge pull request #893 from ftnext/codex/python-313-whisper-tests
ftnext Apr 6, 2026
2855717
Comment out Python 3.14 classifier
ftnext Apr 6, 2026
baa0986
Merge pull request #894 from ftnext/codex/comment-out-py314-classifier
ftnext Apr 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .devin/wiki.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"repo_notes": [
{
"author": "maintainer",
"content": "This repository is the SpeechRecognition Python library. The core implementation is centered in speech_recognition/__init__.py (Recognizer, AudioSource, Microphone, AudioFile), while audio format conversion and FLAC handling are in speech_recognition/audio.py."
},
{
"author": "maintainer",
"content": "Engine-specific recognition logic lives under speech_recognition/recognizers/ (google, google_cloud, pocketsphinx, vosk, whisper_local, whisper_api). New recognizer integrations and engine-specific bug fixes should primarily be documented in this area."
},
{
"author": "maintainer",
"content": "Execution entry points: speech_recognition/__main__.py for the demo (python -m speech_recognition), and speech_recognition/cli.py for the sprc CLI including Vosk model download."
},
{
"author": "maintainer",
"content": "Tests are split between tests/ (core audio and recognizer behavior) and tests/recognizers/ (engine-specific tests). Some tests require optional dependencies or external credentials and may be skipped in local environments."
},
{
"author": "maintainer",
"content": "Optional functionality is driven by extras in setup.cfg (audio, pocketsphinx, google-cloud, whisper-local, faster-whisper, openai, groq, vosk). Documentation should make dependency requirements explicit per recognizer."
}
]
}
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
blank_issues_enabled: false
46 changes: 46 additions & 0 deletions .github/ISSUE_TEMPLATE/issue_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
name: Issue
about: Use this template for bug reports (and so on).
---

Steps to reproduce
------------------

1. (How do you make the issue happen? Does it happen every time you try it?)
2. (Make sure to go into as much detail as needed to reproduce the issue. Posting your code here can help us resolve the problem much faster!)
3. (If there are any files, like audio recordings, don't forget to include them.)

Expected behaviour
------------------

(What did you expect to happen?)

Actual behaviour
----------------

(What happened instead? How is it different from what you expected?)

```
(If the library threw an exception, paste the full stack trace here)
```

System information
------------------

(Delete all the statements that don't apply.)

My **system** is <INSERT SYSTEM HERE>. (For example, "Ubuntu 16.04 LTS x64", "Windows 10 x64", or "macOS Sierra".)

My **Python version** is <INSERT VERSION HERE>. (You can check this by running `python -V`.)

My **Pip version** is <INSERT VERSION HERE>. (You can check this by running `pip -V`.)

My **SpeechRecognition library version** is <INSERT VERSION HERE>. (You can check this by running `python -c "import speech_recognition as sr;print(sr.__version__)"`.)

My **PyAudio library version** is <INSERT VERSION HERE> / I don't have PyAudio installed. (You can check this by running `python -c "import pyaudio as p;print(p.__version__)"`.)

My **microphones** are: (You can check this by running `python -c "import speech_recognition as sr;print(sr.Microphone.list_microphone_names())"`.)

My **working microphones** are: (You can check this by running `python -c "import speech_recognition as sr;print(sr.Microphone.list_working_microphones())"`.)

I **installed PocketSphinx from** <INSERT SOURCE HERE>. (For example, from the Debian repositories, from Homebrew, or from the source code.)
23 changes: 23 additions & 0 deletions .github/workflows/issues.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Close inactive issues

on:
schedule:
- cron: "30 1 * * *"

jobs:
close-issues:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10.2.0
with:
days-before-issue-stale: 14
days-before-issue-close: 7
stale-issue-label: "stale"
stale-issue-message: "This issue is stale because it has been open for 14 days with no activity."
close-issue-message: "This issue was closed because it has been inactive for 7 days since being marked as stale."
any-of-issue-labels: "needinfo"
days-before-pr-stale: -1
days-before-pr-close: -1
repo-token: ${{ secrets.GITHUB_TOKEN }}
18 changes: 18 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Static analysis

on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
lint:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Run flake8
run: make lint
18 changes: 18 additions & 0 deletions .github/workflows/rstcheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Ensure RST is well-formed

on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
rstcheck:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Run rstcheck
run: make rstcheck
30 changes: 30 additions & 0 deletions .github/workflows/typecheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Type check

on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
typecheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: '3.12'
- name: Install build dependencies
run: |
sudo apt-get update
# For pocketsphinx (already installed: swig)
sudo apt-get install --no-install-recommends -y libpulse-dev libasound2-dev
# For PyAudio
sudo apt-get install --no-install-recommends -y portaudio19-dev
- name: Install Python dependencies
run: |
python -m pip install .[dev,audio,pocketsphinx,google-cloud,whisper-local,faster-whisper,openai,groq,vosk]
- run: make typecheck
64 changes: 64 additions & 0 deletions .github/workflows/unittests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Unit tests

on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
build:
strategy:
fail-fast: true
matrix:
include:
- os: ubuntu-latest
python-version: "3.9"
- os: ubuntu-latest
python-version: "3.10"
- os: ubuntu-latest
python-version: "3.11"
- os: ubuntu-latest
python-version: "3.12"
- os: ubuntu-latest
python-version: "3.13"
- os: ubuntu-latest
python-version: "3.14"
- os: windows-latest
python-version: "3.11"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}
- name: Install build dependencies
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
# For pocketsphinx (already installed: swig)
sudo apt-get install --no-install-recommends -y libpulse-dev libasound2-dev
# For PyAudio
sudo apt-get install --no-install-recommends -y portaudio19-dev
- name: Install ffmpeg (for Whisper)
uses: FedericoCarboni/setup-ffmpeg@37062fbf7149fc5578d6c57e08aed62458b375d6 # v3.1
- name: Install Python dependencies (Ubuntu, <=3.13)
if: matrix.os == 'ubuntu-latest' && matrix.python-version != '3.14'
run: |
python -m pip install .[dev,audio,pocketsphinx,google-cloud,whisper-local,faster-whisper,openai,groq,vosk,cohere-api]
- name: Install Python dependencies (Ubuntu, 3.14)
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.14'
run: |
python -m pip install .[dev,audio,pocketsphinx,google-cloud,openai,groq,vosk,cohere-api]
- name: Install Python dependencies (Windows)
if: matrix.os == 'windows-latest'
run: |
python -m pip install .[dev,whisper-local,faster-whisper,google-cloud,openai,groq,vosk,cohere-api]
- name: Set up vosk model
run: python -m speech_recognition.cli download vosk
- name: Test with unittest
run: |
pytest --doctest-modules -s -v speech_recognition/recognizers/ tests/
Loading
Loading