Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
302 commits
Select commit Hold shift + click to select a range
d8b97ba
Updated release to fix pyinstaller error
ItsSimko Dec 16, 2024
b01e1f9
Merge pull request #3 from ItsSimko/faster-whisper
ItsSimko Dec 16, 2024
2730d57
added the cuda driver install to the github action
ItsSimko Dec 16, 2024
92325dd
Merge pull request #4 from ItsSimko/faster-whisper
ItsSimko Dec 16, 2024
958e1dc
removed circular import
ItsSimko Dec 16, 2024
e9dbab9
debug remove cpu step
ItsSimko Dec 16, 2024
8ef2899
Merge pull request #5 from ItsSimko/faster-whisper
ItsSimko Dec 16, 2024
890aefb
syntax error
ItsSimko Dec 16, 2024
fcafb6c
added error handling to the transcribe if model is not loaded
ItsSimko Dec 16, 2024
0584b79
Prevented enum recursion
ItsSimko Dec 16, 2024
d251426
Updated default AI endpoint to point to the container
ItsSimko Dec 16, 2024
eb63e64
Updated default remote model to the local llm container default
ItsSimko Dec 16, 2024
f1dde42
Added the fatser_whisper params to adv settings
ItsSimko Dec 16, 2024
c824c61
changed to valid settings keys
ItsSimko Dec 16, 2024
f96a349
Moved whisper reload to seperate functio nand addeed cases if thread …
ItsSimko Dec 16, 2024
22a0075
added unload to STT model if one already exists on attempted load
ItsSimko Dec 16, 2024
a6cc52a
Forced types on adanveced settings stuff
ItsSimko Dec 16, 2024
daa76ff
Fixed some class access errors
ItsSimko Dec 16, 2024
2216553
Added debug prints to the unload_model
ItsSimko Dec 16, 2024
698e083
added back cpu steps done debugging
ItsSimko Dec 16, 2024
3e61835
Update src/FreeScribe.client/client.py Run a check when unloading model
ItsSimko Dec 16, 2024
f68ade4
updated the default to float16 for better support to nvidia and autom…
ItsSimko Dec 16, 2024
22aa5cb
fixed typo
ItsSimko Dec 16, 2024
37df234
Broke down the load stt_load function into smaller functions, moved c…
ItsSimko Dec 16, 2024
79ff9be
Merge branch 'faster-whisper' of https://github.com/ClinicianFOCUS/Fr…
ItsSimko Dec 16, 2024
5c2049e
removed debug print
ItsSimko Dec 16, 2024
e95418e
Fixed cuda pathing error
ItsSimko Dec 16, 2024
9312e39
Documentation
ItsSimko Dec 16, 2024
60b3af4
changed cuda function to use guard clause
ItsSimko Dec 16, 2024
d1ba036
Made transcribe function raise exception on fail
ItsSimko Dec 16, 2024
4902ed7
Update src/FreeScribe.client/client.py Validation check for settings
ItsSimko Dec 16, 2024
a32bd13
Merge branch 'faster-whisper' of https://github.com/ClinicianFOCUS/Fr…
ItsSimko Dec 16, 2024
2ed74cc
Removed VAD validation because its a checkbox cant mess it up.. rewor…
ItsSimko Dec 16, 2024
da3df2a
Reworded the beam size validation messages
ItsSimko Dec 16, 2024
d652c94
Merge pull request #6 from ItsSimko/faster-whisper
ItsSimko Dec 16, 2024
382d4d1
changed to upload to the correct file on transcribe
ItsSimko Dec 16, 2024
a87dd60
Merge pull request #7 from ItsSimko/faster-whisper
ItsSimko Dec 16, 2024
101ff19
Updated the float type if its on cpu trying to use float16
ItsSimko Dec 16, 2024
f4d948a
Fixed beam size being hidden by adding blank space place holder for c…
ItsSimko Dec 16, 2024
2aa7a8b
Update license to AGPL-3.0
ItsSimko Dec 16, 2024
820e308
Updated readme
ItsSimko Dec 16, 2024
a29088e
added documentation auto build github action
ItsSimko Dec 16, 2024
ba6b2d0
added the sphinx stuff
ItsSimko Dec 16, 2024
ba0ccef
Merge branch 'main' into docs
ItsSimko Dec 16, 2024
015187c
updated docs release action
ItsSimko Dec 16, 2024
2bfb182
Merge branch 'docs' of https://github.com/ItsSimko/AiScribe into docs
ItsSimko Dec 16, 2024
0bd76df
switched github runner to windows for docs
ItsSimko Dec 16, 2024
ab399be
Made the sphinx page declare its a WIP right now
ItsSimko Dec 16, 2024
10e1356
typo fix
ItsSimko Dec 16, 2024
153ef12
Update src/FreeScribe.client/client.py
ItsSimko Dec 16, 2024
e04df31
Merge pull request #224 from ClinicianFOCUS/faster-whisper
yingbull Dec 17, 2024
3f48ca5
Updated settings help to contain only relevant settings
ItsSimko Dec 17, 2024
6c9595f
Added a contributing section to readme.md
ItsSimko Dec 17, 2024
856bdc7
Removed unused section in the welcome
ItsSimko Dec 17, 2024
2c0ade8
removed unused settings from the SettingsUI window as some where only…
ItsSimko Dec 17, 2024
2faf276
Updated gitignore
ItsSimko Dec 17, 2024
049b7e1
Remote connection documentation
ItsSimko Dec 17, 2024
e870c99
More documentation
ItsSimko Dec 17, 2024
4cd82fb
Update src/FreeScribe.client/markdown/help/settings.md
ItsSimko Dec 17, 2024
f395110
Update src/FreeScribe.client/markdown/help/settings.md
ItsSimko Dec 17, 2024
22748fa
Made github workflow create version file based on pushed version tag
ItsSimko Dec 18, 2024
6d21d41
Made the installer add the version file to the _internal
ItsSimko Dec 18, 2024
780b241
Made a get version number function and added it to the setting.txt on…
ItsSimko Dec 18, 2024
d61b305
Added version to the bottom of the settings window
ItsSimko Dec 18, 2024
566b2bf
Made the whisper architecture select greyed out on remote
ItsSimko Dec 18, 2024
ec6eec2
reorganized settings so microphone is on thright bototm and architect…
ItsSimko Dec 18, 2024
c4bdef1
Clear application state on whole file cancel
ItsSimko Dec 18, 2024
32028fa
Removed magic nums
ItsSimko Dec 18, 2024
cf77a90
Adjusted settings window to be bigger to fit everything
ItsSimko Dec 18, 2024
43c8e8a
Made settings open into the center of main window
ItsSimko Dec 18, 2024
4bbbc59
Made display to center private
ItsSimko Dec 18, 2024
932f2f5
Updated the private refernce
ItsSimko Dec 18, 2024
19b4201
Render welcome message post widget render in client.py
ItsSimko Dec 18, 2024
efdfcef
Made content load first. Also made the window display to the center o…
ItsSimko Dec 18, 2024
4515e7c
Update the versioning number we submit
ItsSimko Dec 18, 2024
d3f909e
Fixed string ref causing error
ItsSimko Dec 18, 2024
acb9d71
removed debug step
ItsSimko Dec 18, 2024
c05f159
Fixed incorrect incrementation of row
ItsSimko Dec 18, 2024
c330e0d
Fixed typo in row incrementation and add safery check to destroy
ItsSimko Dec 18, 2024
03dec00
Removed scribe templates and added check to show settings section for…
ItsSimko Dec 18, 2024
e8ae8cd
log any version file io errors , print them to debug, return default
ItsSimko Dec 18, 2024
a13a1d5
Merge pull request #232 from ClinicianFOCUS/docs
yingbull Dec 19, 2024
0ca75c9
Merge pull request #240 from ClinicianFOCUS/mini-fix
yingbull Dec 19, 2024
0f43e71
Merge pull request #241 from ClinicianFOCUS/remove-templates
yingbull Dec 19, 2024
ec60d9b
Increased the default realtime chunk size
ItsSimko Dec 19, 2024
98a59fe
Renamed labels with experimental
ItsSimko Dec 19, 2024
f1e3d59
feat: remove temp recordings on app close
pemba1s1 Jan 8, 2025
9971f53
error handle while removing temp recordings
pemba1s1 Jan 8, 2025
32181a2
remove realtime.wav on app close
pemba1s1 Jan 15, 2025
9b46250
refact
pemba1s1 Jan 15, 2025
55c6660
add .m4a support
Jan 15, 2025
e994992
debug prints when sending to whisper
ItsSimko Jan 16, 2025
6a1abdc
updated is_silent to use silero
ItsSimko Jan 22, 2025
b587a64
removed 5 seconds minimum as we now know it is only speech going to t…
ItsSimko Jan 22, 2025
6bd4540
added debug message for timeout
ItsSimko Jan 22, 2025
cbebbb3
added back audio queue condition check
ItsSimko Jan 22, 2025
e5adfb5
Updated real time to use in memory to prevent issues with multiple th…
ItsSimko Jan 22, 2025
abafc62
Made timeout timer configurable
ItsSimko Jan 22, 2025
25c6cfe
Type check + print message update + move to adv general settings
ItsSimko Jan 22, 2025
2ab7864
comments
ItsSimko Jan 22, 2025
0b69eb7
more comments
ItsSimko Jan 22, 2025
dd4b405
Dont make network request on empty frame object
ItsSimko Jan 22, 2025
03742a3
close buffer on frames empty
ItsSimko Jan 22, 2025
9ba6ad4
Merge pull request #243 from ClinicianFOCUS/label-change
yingbull Jan 22, 2025
ab966d6
Merge pull request #245 from ClinicianFOCUS/remove-temp-record-on-close
yingbull Jan 22, 2025
4bdab9b
Merge pull request #251 from ClinicianFOCUS/debug-prints
yingbull Jan 22, 2025
b5156bd
Merge pull request #248 from ClinicianFOCUS/feature/m4a
yingbull Jan 22, 2025
5f676ec
Merge branch 'main' into fix/hendy-bug
ItsSimko Jan 23, 2025
6f5f5d7
Merge pull request #253 from ClinicianFOCUS/fix/hendy-bug
yingbull Jan 23, 2025
7e193ee
errors from merge
ItsSimko Jan 23, 2025
68fa2c3
Fixed merge bug
ItsSimko Jan 23, 2025
d1892dc
Merge pull request #256 from ClinicianFOCUS/fix/hot-fix-hendy-bug
yingbull Jan 23, 2025
15026d3
Merge branch 'main' of https://github.com/ClinicianFOCUS/FreeScribe
ItsSimko Jan 23, 2025
34f5761
updated requirements for silero
ItsSimko Jan 23, 2025
4ab2855
Added speech probabilty to adv settings
ItsSimko Jan 23, 2025
c2c2deb
Updated comment
ItsSimko Jan 23, 2025
52302eb
Merge branch 'main' into silero
ItsSimko Jan 23, 2025
d30e529
Fixed indentation from merge conflict. Also, added type validation fr…
ItsSimko Jan 23, 2025
38885fb
Merge pull request #257 from ClinicianFOCUS/silero
yingbull Jan 23, 2025
6f77299
ApplicationLock class to handle one instance
ItsSimko Jan 24, 2025
362e204
Renamed ApplicationLock to OneInstance
ItsSimko Jan 24, 2025
4a393ad
grouped imports and order properly
ItsSimko Jan 24, 2025
76bad50
Added OneInstance to main loop
ItsSimko Jan 24, 2025
de7fad1
removed blank lines
ItsSimko Jan 24, 2025
598d1af
removed file that was in here for testing
ItsSimko Jan 24, 2025
532e4b4
changed the kill process to psutil for cross compat
ItsSimko Jan 24, 2025
fee0479
ran a system compat check on bring to front
ItsSimko Jan 24, 2025
be1bdde
moved imports back to top level
ItsSimko Jan 24, 2025
2dba455
shwitched bring to front to old code to ensure cross platform
ItsSimko Jan 24, 2025
3335d10
Updated function call
ItsSimko Jan 24, 2025
7bf2435
Moved the button handlers to private functions.
ItsSimko Jan 24, 2025
402b800
added guard close
ItsSimko Jan 24, 2025
c565281
Added blank line at end
ItsSimko Jan 24, 2025
2568bbe
Added windows only check
ItsSimko Jan 24, 2025
38aa1cf
Updated correct returns for bring_to_front
ItsSimko Jan 24, 2025
9ef9ed5
Changed realtime remote to use the audio queue instead of frames
ItsSimko Jan 24, 2025
bf87646
removed unused global reference
ItsSimko Jan 24, 2025
d68ed40
write into the audio buffer as wave file format
ItsSimko Jan 24, 2025
12f5ae6
Merge pull request #261 from ClinicianFOCUS/fix-instance
yingbull Jan 24, 2025
f8507ec
Merge pull request #264 from ClinicianFOCUS/fix/audio-buffer
yingbull Jan 24, 2025
a560c41
Microphone test component in main screen
Yogesh-333 Jan 27, 2025
2d940c6
mic image
Yogesh-333 Jan 27, 2025
09dc26f
Added the use_translate to body
ItsSimko Jan 27, 2025
4ef8ba5
added use translate to adv whisper settings
ItsSimko Jan 27, 2025
357076f
Merge branch 'Microphone-TestScreen' of https://github.com/ClinicianF…
ItsSimko Jan 27, 2025
26fa551
added psutil for the build process
ItsSimko Jan 27, 2025
cc6b398
Changed realtime remote to use the audio queue instead of frames
ItsSimko Jan 24, 2025
9bef4a7
removed unused global reference
ItsSimko Jan 24, 2025
76aa405
write into the audio buffer as wave file format
ItsSimko Jan 24, 2025
fc6e2ac
Merge branch 'main' of https://github.com/ClinicianFOCUS/FreeScribe
ItsSimko Jan 27, 2025
b638613
Merge pull request #268 from ClinicianFOCUS/psutil-hotfix
yingbull Jan 27, 2025
354a35b
Add language code to settings
ItsSimko Jan 27, 2025
d9c561d
send language if not auto detect
ItsSimko Jan 27, 2025
07ab9a1
Merge branch 'main' of https://github.com/ClinicianFOCUS/FreeScribe
ItsSimko Jan 27, 2025
7dba001
Exclude its self from the process search
ItsSimko Jan 27, 2025
922ccec
Merge pull request #272 from ClinicianFOCUS/feature/translate
yingbull Jan 28, 2025
1f9689c
Merge pull request #273 from ClinicianFOCUS/fix/instance-bug
yingbull Jan 28, 2025
73618ce
Add translate to realtime
ItsSimko Jan 28, 2025
0f9ee06
Moved auto language codes to a constant
ItsSimko Jan 28, 2025
518f914
Settings keys for self signed certs
ItsSimko Jan 28, 2025
ce87529
Merge pull request #275 from ClinicianFOCUS/feature/translate
yingbull Jan 28, 2025
cd10c3f
Microphone test monitor finetuned
Yogesh-333 Jan 28, 2025
0422cd8
removed stero and loopback from filters
Yogesh-333 Jan 28, 2025
4819ea0
Pillow import added in req
Yogesh-333 Jan 28, 2025
3fc86b1
Merge branch 'main' into Microphone-TestScreen
Yogesh-333 Jan 28, 2025
8a81fa6
Merge branch 'Microphone-TestScreen' of https://github.com/ClinicianF…
ItsSimko Jan 28, 2025
cca900b
try fixing local stt model not loaded when start recording
Jan 29, 2025
7ba6fee
make sure loading window is destroyed
Jan 29, 2025
65c93f3
fix logging
Jan 29, 2025
442c458
extract double_check_stt_model_loading function
Jan 29, 2025
a0a67c5
Added exception handler to record_audio on TypeError and ValueError o…
ItsSimko Jan 29, 2025
72bfae6
fix UI freeze
Jan 29, 2025
ef96d26
refactor loading
Jan 29, 2025
498ee4d
different content in loading window
Jan 29, 2025
1239b2a
Merge pull request #278 from ClinicianFOCUS/fix/audio-device-hotfix
yingbull Jan 29, 2025
8ee914c
Merge remote-tracking branch 'origin/main' into fix/stt_model_not_loaded
Jan 29, 2025
a0358a4
Minimize screen fix
Yogesh-333 Jan 29, 2025
5f6dd58
Screen input function
ItsSimko Jan 29, 2025
ce1aca8
prescreen debug
ItsSimko Jan 29, 2025
8543e66
control log level
Jan 29, 2025
2a24485
5min timeout
Jan 29, 2025
1d90195
saves last mic option in settings for next time
Yogesh-333 Jan 29, 2025
ac2a9d1
show model name in loading window
Jan 29, 2025
7ecdea2
increase load window width
Jan 29, 2025
fad6205
increase width of loading window again
Jan 29, 2025
7348ad4
adopt log format suggestion
Jan 29, 2025
7f4bbc6
env var FREESCRIBE_DEBUG to control log level
Jan 29, 2025
32170c8
added padding to make look even size
Yogesh-333 Jan 29, 2025
cf9eb02
if user stopped waiting, double_check_stt_model_loading thread should…
Jan 29, 2025
9f97ea6
Custom PopupBox
ItsSimko Jan 29, 2025
bba6aa3
screen input function
ItsSimko Jan 29, 2025
ae3aca4
avoid potentially showing duplicate loading windows
Jan 29, 2025
3a79867
add .idea and __version__ to gitignore
Jan 29, 2025
8a2b6fc
do not start recording if canceled waiting
Jan 30, 2025
1f1c681
timeout be like cancel
Jan 30, 2025
a757aa3
Merge branch 'Microphone-TestScreen' of https://github.com/ClinicianF…
ItsSimko Jan 30, 2025
de9dabc
Added some more error logging to debug window on exceptions
ItsSimko Jan 30, 2025
9a57a88
Did some element aligning
ItsSimko Jan 30, 2025
27a95ba
Fixed spacing on full screen
ItsSimko Jan 30, 2025
7c8c12f
Update the frequency of meter update for more responsivness
ItsSimko Jan 30, 2025
e1a73ce
Added a error handling for unknown errors in update_volume_meter. Let…
ItsSimko Jan 30, 2025
eeecc34
Fixed a comment
ItsSimko Jan 30, 2025
6f75f59
Update src/FreeScribe.client/UI/Widgets/MicrophoneTestFrame.py
ItsSimko Jan 30, 2025
7b48da5
Fixed repeat code
ItsSimko Jan 30, 2025
ad0c7c3
Merge branch 'Microphone-TestScreen' of https://github.com/ClinicianF…
ItsSimko Jan 30, 2025
a10b847
Merge pull request #280 from ClinicianFOCUS/more_git_ignore
yingbull Jan 30, 2025
1db3296
fix format
Jan 30, 2025
a8af692
yesnocancel dialog for force stop
Jan 30, 2025
852b0db
remove unreachable branch
Jan 30, 2025
fb2f14d
remove code duplication
Jan 30, 2025
450f9ac
Simplify the flow control
Jan 30, 2025
1fe478f
fix message for user: STT -> Voice to Text
Jan 30, 2025
44fdfb5
fix functionality after refactor
Jan 30, 2025
50df712
format consistency
Jan 30, 2025
ebd6fcc
Merge pull request #277 from ClinicianFOCUS/fix/stt_model_not_loaded
yingbull Jan 30, 2025
dc181a5
Comments
ItsSimko Jan 30, 2025
a371b84
Updated function calls, and setting toggle for this feature
ItsSimko Jan 30, 2025
47e06eb
Made more modular
ItsSimko Jan 30, 2025
7e22b7a
commenting
ItsSimko Jan 30, 2025
af93ddf
Code clean up
ItsSimko Jan 30, 2025
e70ed8b
test see if a new page works
Jan 31, 2025
e380b60
refactor, detect running instance in nsDialog custom page
Jan 31, 2025
c9a6218
fix for uninstallatioin
Jan 31, 2025
12dda60
Code finetuning
Yogesh-333 Jan 31, 2025
4a40987
extract duplicate code to macro
Jan 31, 2025
75562df
split defines in macros to independent macro
Jan 31, 2025
2981af6
add /K flag to kill running instance; skip running instance page in s…
Jan 31, 2025
79412c1
fix CheckRunningInstanceMacro not found, needs to be defined before a…
Jan 31, 2025
41c3ad5
docs: moved right aligned comments to above
ItsSimko Jan 31, 2025
2a2996e
Made popupbox centered to parent
ItsSimko Jan 31, 2025
7eb00a1
fix: made the LLM prescreen popup box cancel on 'X' click
ItsSimko Jan 31, 2025
6614ce4
feat: made the LLM prescreen popupbox center to its parent
ItsSimko Jan 31, 2025
57cbba4
fix: made the LLM prescreen popup box cancel on 'X' click
ItsSimko Jan 31, 2025
db0995c
Merge branch 'feature/whisper-input-screening' of https://github.com/…
ItsSimko Jan 31, 2025
f05422c
fix: added prescreen to load with loading window
ItsSimko Jan 31, 2025
303b5e5
chore: changed whisper model to medium
ItsSimko Jan 31, 2025
f58a3ef
feat(presets): remove the preset feature.
ItsSimko Jan 31, 2025
adf56c1
fix(settings): On install if CUDA is a available default to it.
ItsSimko Jan 31, 2025
d4d1de2
refactor: Refactored the "Architecture" settings value too SettingsKeys
ItsSimko Jan 31, 2025
e9613d4
fix: Potential circular import removed
ItsSimko Jan 31, 2025
7808604
docs: Added a comment to the _create_settings_and_aiscribe_if_not_exist
ItsSimko Jan 31, 2025
64ac5ca
Setting UI finetune and Version display
Yogesh-333 Feb 1, 2025
a70cce4
Merge pull request #286 from ClinicianFOCUS/feature/whisper-input-scr…
yingbull Feb 1, 2025
2006195
Merge pull request #291 from ClinicianFOCUS/feature/installer_force_s…
yingbull Feb 1, 2025
011cb2a
Merge pull request #296 from ClinicianFOCUS/fix/whisper-default
yingbull Feb 1, 2025
a15a0ad
Merge pull request #297 from ClinicianFOCUS/feature/presets
yingbull Feb 1, 2025
8e98cb9
Merge pull request #304 from ClinicianFOCUS/Setting-UI-finetune
yingbull Feb 1, 2025
aeb582b
Merge branch 'main' into fix/cuda-default
yingbull Feb 1, 2025
9a2578f
Merge pull request #298 from ClinicianFOCUS/fix/cuda-default
yingbull Feb 1, 2025
8e28650
Merge branch 'main' into Microphone-TestScreen
Yogesh-333 Feb 1, 2025
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
61 changes: 61 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Deploy Sphinx Docs to GitHub Pages

on:
push:
branches:
- main # Replace 'main' with your default branch if needed

permissions:
id-token: write # Grant the necessary permissions for the deploy-pages action
contents: write # Ensure content write access for deployment
pages: write # Allow deployment to GitHub Page

jobs:
build:
runs-on: windows-latest

steps:
- name: Checkout
uses: actions/checkout@1e31de5234b9f8995739874a8ce0492dc87873e2 # v4.2.1

# Set up Python
- name: Set up Python
uses: actions/setup-python@61a6322f88396a6271a6ee3565807d608ecaddd1 # v4.7.0
with:
python-version: "3.10"

# Install dependencies and sphinx
- name: Install Dependencies
run: |
pip install sphinx sphinx-rtd-theme

# Install requirements for documentation building
- name: Install Documentation Requirements
run: |
pip install -r client_requirements_nvidia.txt

# Build the Sphinx documentation
- name: Build Sphinx Documentation
run: |
cd ./docs
sphinx-build -b html ./ ./_build/html

- name: Setup Pages
uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5.0

# Create a tarball of the built documentation
- name: Zip artifact
run: |
tar -czvf html.tar.gz ./docs/_build/html

- name: Upload artifact
uses: actions/upload-pages-artifact@0252fc4ba7626f0298f0cf00902a25c6afc77fa8 # v3.0
with:
# Upload entire repository
path: "./docs/_build/html"

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e #v4.0.5
with:
token: ${{ secrets.GITHUB_TOKEN }}
21 changes: 19 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@ jobs:
- name: Checkout
uses: actions/checkout@v1

- name: Create Version Text File for PyInstaller
run: |
$tag = '${{ github.ref }}' -replace 'refs/tags/', ''
echo $tag > .\scripts\__version__
shell: pwsh

- name: Install Python
uses: actions/setup-python@v1
with:
Expand All @@ -24,19 +30,30 @@ jobs:
# Create CUDA-enabled executable
- name: Install CUDA-enabled llama_cpp
run: |
pip install --index-url https://abetlen.github.io/llama-cpp-python/whl/cu121 --extra-index-url https://pypi.org/simple llama-cpp-python==v0.2.90
pip install --index-url https://abetlen.github.io/llama-cpp-python/whl/cu124 --extra-index-url https://pypi.org/simple llama-cpp-python==v0.2.90

- name: Instal CUDA drivers for NVIDIA install
run: |
pip install nvidia-cudnn-cu12==9.5.0.50
pip install nvidia-cuda-runtime-cu12==12.4.127
pip install nvidia-cuda-nvrtc-cu12==12.4.127
pip install nvidia-cublas-cu12==12.4.5.8

- name: Install requirements
run: |
pip install -r client_requirements.txt

- name: Run PyInstaller for NVIDIA
run: |
pyinstaller --additional-hooks-dir=.\scripts\hooks --add-data ".\scripts\NVIDIA_INSTALL.txt:install_state" --add-data ".\src\FreeScribe.client\whisper-assets:whisper\assets" --add-data ".\src\FreeScribe.client\markdown:markdown" --add-data ".\src\FreeScribe.client\assets:assets" --name freescribe-client-nvidia --icon=.\src\FreeScribe.client\assets\logo.ico --noconsole .\src\FreeScribe.client\client.py
pyinstaller --additional-hooks-dir=.\scripts\hooks --add-data ".\scripts\NVIDIA_INSTALL.txt:install_state" --add-data ".\src\FreeScribe.client\whisper-assets:whisper\assets" --add-data ".\src\FreeScribe.client\markdown:markdown" --add-data ".\src\FreeScribe.client\assets:assets" --add-data "C:\hostedtoolcache\windows\Python\3.10.11\x64\lib\site-packages\nvidia:nvidia-drivers" --name freescribe-client-nvidia --icon=.\src\FreeScribe.client\assets\logo.ico --noconsole .\src\FreeScribe.client\client.py

# Create CPU-only executable
- name: Uninstall CUDA-enabled llama_cpp (if necessary) and install CPU-only llama_cpp
run: |
pip uninstall nvidia-cudnn-cu12==9.5.0.50
pip uninstall nvidia-cuda-runtime-cu12==12.4.127
pip uninstall nvidia-cuda-nvrtc-cu12==12.4.127
pip uninstall nvidia-cublas-cu12==12.4.5.8
pip uninstall -y llama-cpp-python
pip install --index-url https://abetlen.github.io/llama-cpp-python/whl/cpu --extra-index-url https://pypi.org/simple llama-cpp-python==v0.2.90

Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
.idea/
__version__

aiscribe.txt
aiscribe2.txt
settings.txt
Expand All @@ -18,3 +21,5 @@ freescribe-client.spec
freescribe-client-cpu.spec
freescribe-client-nvidia.spec
scripts/FreeScribeInstaller.exe

_build
151 changes: 69 additions & 82 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,23 +1,21 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007

Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Preamble

The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.

The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
software for all its users.

When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
Expand All @@ -26,44 +24,34 @@ them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.

Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.

For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.

Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.

A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.

The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.

An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.

The precise terms and conditions for copying, distribution and
modification follow.
Expand All @@ -72,7 +60,7 @@ modification follow.

0. Definitions.

"This License" refers to version 3 of the GNU General Public License.
"This License" refers to version 3 of the GNU Affero General Public License.

"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
Expand Down Expand Up @@ -549,35 +537,45 @@ to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.

13. Use with the GNU Affero General Public License.
13. Remote Network Interaction; Use with the GNU General Public License.

Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.

Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.

14. Revised Versions of this License.

The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
the GNU Affero General Public License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.

If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.

Expand Down Expand Up @@ -635,40 +633,29 @@ the "copyright" line and a pointer to where the full notice is found.
Copyright (C) <year> <name of author>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
GNU Affero General Public License for more details.

You should have received a copy of the GNU General Public License
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code. There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.

You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.

The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.
For more information on this, and how to apply and follow the GNU AGPL, see
<https://www.gnu.org/licenses/>.
Loading