From 221ea91328c88cd6596779a53393b7e28f77c1cf Mon Sep 17 00:00:00 2001 From: sanj <67624670+iodrift@users.noreply.github.com> Date: Tue, 30 Jul 2024 19:43:50 -0700 Subject: [PATCH] Auto-update: Tue Jul 30 19:43:50 PDT 2024 --- 15 | 12 ------- Summarizer | 36 --------------------- VBoxAudioTest | 2 -- VBoxAutostart | 2 -- VBoxBalloonCtrl | 2 -- VBoxBugReport | 2 -- VBoxHeadless | 2 -- VBoxManage | 2 -- VBoxVRDP | 2 -- asf | 37 ---------------------- asr copy | 22 ------------- ccd | 3 -- chat | 1 - fixname | 47 --------------------------- fuzzy_match | 27 ---------------- httpclient | 27 ---------------- llm | 12 ------- master | 3 -- nukenode | 68 --------------------------------------- nv_mount | 7 ---- scrape | 79 ---------------------------------------------- temp.txt | 33 ------------------- txt-line-merge-abc | 1 + vbox-img | 2 -- vboximg-mount | 2 -- xtts | 78 --------------------------------------------- 26 files changed, 1 insertion(+), 510 deletions(-) delete mode 100755 15 delete mode 100755 Summarizer delete mode 100755 VBoxAudioTest delete mode 100755 VBoxAutostart delete mode 100755 VBoxBalloonCtrl delete mode 100755 VBoxBugReport delete mode 100755 VBoxHeadless delete mode 100755 VBoxManage delete mode 100755 VBoxVRDP delete mode 100755 asf delete mode 100755 asr copy delete mode 100755 ccd delete mode 100755 chat delete mode 100755 fixname delete mode 100755 fuzzy_match delete mode 100755 httpclient delete mode 100755 llm delete mode 100755 master delete mode 100755 nukenode delete mode 100755 nv_mount delete mode 100755 scrape delete mode 100644 temp.txt mode change 100755 => 100644 txt-line-merge-abc delete mode 100755 vbox-img delete mode 100755 vboximg-mount delete mode 100755 xtts diff --git a/15 b/15 deleted file mode 100755 index ea1e1ea..0000000 --- a/15 +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -tailscale="/Applications/Tailscale.app/Contents/MacOS/Tailscale" - -if $tailscale status | grep -q "100."; then - echo "Connected to Tailscale, SSH'ing to 100.64.64.30..." - ssh sangye@100.64.64.30 -else - echo "Not connected to Tailscale, SSH'ing to 10.13.37.30..." - ssh sangye@10.13.37.30 -fi - diff --git a/Summarizer b/Summarizer deleted file mode 100755 index cfa88d0..0000000 --- a/Summarizer +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -# Endpoint URL -endpoint="http://localhost:3456/summarize" - -# Function to check if port 3456 is open -is_port_open() { - nc -z localhost 3456 - return $? -} - -# Check if the FastAPI server is running (port 3456) -if ! is_port_open; then - echo "Starting BananaPhone.py..." - # Start the FastAPI server - /Users/sij/AI/banana-phone/BananaPhone.sh & - - # Wait for the server to start - echo "Waiting for server to start..." - until is_port_open; do - sleep 1 - done - echo "Server started." -fi - -# Loop through each file dropped onto the droplet -for f in "$@" -do - # POST request using curl - curl -X POST -H "Content-Type: multipart/form-data" \ - -H "Authorization: Bearer sk-NhrtQwCHNdK5sRZC" \ - -F "file=@$f" \ - -F "podcast=true" \ - -F "speed=1.2" \ - "$endpoint" -done diff --git a/VBoxAudioTest b/VBoxAudioTest deleted file mode 100755 index dc27d4b..0000000 --- a/VBoxAudioTest +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -exec /Applications/VirtualBox.app/Contents/MacOS/VBoxAudioTest "$@" diff --git a/VBoxAutostart b/VBoxAutostart deleted file mode 100755 index 3d7c8f5..0000000 --- a/VBoxAutostart +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -exec /Applications/VirtualBox.app/Contents/MacOS/VBoxAutostart "$@" diff --git a/VBoxBalloonCtrl b/VBoxBalloonCtrl deleted file mode 100755 index b434e9f..0000000 --- a/VBoxBalloonCtrl +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -exec /Applications/VirtualBox.app/Contents/MacOS/VBoxBalloonCtrl "$@" diff --git a/VBoxBugReport b/VBoxBugReport deleted file mode 100755 index 1bc4613..0000000 --- a/VBoxBugReport +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -exec /Applications/VirtualBox.app/Contents/MacOS/VBoxBugReport "$@" diff --git a/VBoxHeadless b/VBoxHeadless deleted file mode 100755 index 15dbd02..0000000 --- a/VBoxHeadless +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -exec /Applications/VirtualBox.app/Contents/MacOS/VBoxHeadless "$@" diff --git a/VBoxManage b/VBoxManage deleted file mode 100755 index c4087d6..0000000 --- a/VBoxManage +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -exec /Applications/VirtualBox.app/Contents/MacOS/VBoxManage "$@" diff --git a/VBoxVRDP b/VBoxVRDP deleted file mode 100755 index 15dbd02..0000000 --- a/VBoxVRDP +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -exec /Applications/VirtualBox.app/Contents/MacOS/VBoxHeadless "$@" diff --git a/asf b/asf deleted file mode 100755 index ee9baf4..0000000 --- a/asf +++ /dev/null @@ -1,37 +0,0 @@ --- Mail Rule - Add messages to DEVONthink --- Created by Christian Grunenberg on Mon Apr 19 2004. --- Copyright (c) 2004-2020. All rights reserved. - --- this string is used when the message subject is empty -property pNoSubjectString : "(no subject)" - -using terms from application "Mail" - on perform mail action with messages theMessages for rule theRule - tell application "Mail" - repeat with theMessage in theMessages - try - tell theMessage - set {theDateReceived, theDateSent, theSender, theSubject, theSource, theReadFlag} to {the date received, the date sent, the sender, subject, the source, the read status} - set theMessageURL to "message://%3c" & theMessage's message id & "%3e" - end tell - if theSubject is equal to "" then set theSubject to pNoSubjectString - tell application id "DNtp" - set username to do shell script "id -un" -- this will get the current username dynamically - set theDatabase to open database ("/Users/" & username & "/Databases/Professional.dtbase2") - set theYear to year of theDateReceived - set theMonth to texts -2 thru -1 of ("0" & (month of theDateReceived as integer)) - set theMonthName to month of theDateReceived as string - set theDay to texts -2 thru -1 of ("0" & (day of theDateReceived)) - set theWeekday to weekday of theDateReceived - set theGroup to create location ("/Notes/Journal/" & theYear & "/" & theYear & "-" & theMonth & " " & theMonthName & "/" & theYear & "-" & theMonth & "-" & theDay & " " & theWeekday & "/" & "Emails") in theDatabase - set theRecord to create record with {name:theSubject & ".eml", type:unknown, creation date:theDateSent, modification date:theDateReceived, URL:theSender, source:(theSource as string), unread:(not theReadFlag)} in theGroup - set theConvertedRecord to convert record theRecord to markdown - delete record theRecord - set URL of theConvertedRecord to theMessageURL - perform smart rule trigger import event record theConvertedRecord - end tell - end try - end repeat - end tell - end perform mail action with messages -end using terms from \ No newline at end of file diff --git a/asr copy b/asr copy deleted file mode 100755 index 3d922d7..0000000 --- a/asr copy +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -# Check if a filename is provided -if [ "$#" -ne 1 ]; then - echo "Usage: $0 filename" - exit 1 -fi - -# Assign the first argument to FILENAME -FILENAME="$1" - -# Check if the file exists -if [ ! -f "$FILENAME" ]; then - echo "Error: File not found - $FILENAME" - exit 1 -fi - -# Perform the curl POST request with the file -curl -X POST http://127.0.0.1:3456/v1/asr \ --H 'Authorization: bearer sk-NhrtQwCHNdK5sRZC' \ --F "file=@$FILENAME" - diff --git a/ccd b/ccd deleted file mode 100755 index 1c3fc22..0000000 --- a/ccd +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -cd $1 -ls -lsa diff --git a/chat b/chat deleted file mode 100755 index 3f82620..0000000 --- a/chat +++ /dev/null @@ -1 +0,0 @@ -python /usr/local/bin/chat.py diff --git a/fixname b/fixname deleted file mode 100755 index 602a9a5..0000000 --- a/fixname +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash - -# Check if enough arguments are passed -if [ "$#" -ne 1 ]; then - echo "Usage: $0 " - exit 1 -fi - -# Function to truncate filename to a maximum length, preserving the extension -truncate_filename() { - local filename="$1" - local max_length="$2" - local extension="${filename##*.}" - local base_name="${filename%.*}" - - if [ ${#filename} -gt $max_length ]; then - local truncated_base="${base_name:0:($max_length - ${#extension} - 1)}" - echo "${truncated_base}.${extension}" - else - echo "$filename" - fi -} - -# Read the file paths from the input file -while IFS= read -r file_path; do - # Extract the directory and filename - dir_path=$(dirname "$file_path") - file_name=$(basename "$file_path") - - # Define the new filename by replacing or removing illegal characters - new_file_name=$(echo "$file_name" | tr -d '<>:"/\\|?*' | tr '[:cntrl:]' '_' | sed 's/[—·]/-/g' | sed 's/"/_/g' | sed "s/'/_/g") - - # Ensure filename does not end with an underscore - new_file_name=$(echo "$new_file_name" | sed 's/_$//') - - # Truncate the filename if it is longer than 200 characters, preserving the extension - new_file_name=$(truncate_filename "$new_file_name" 200) - - # Construct the new path - new_path="$dir_path/$new_file_name" - - # Rename the file if necessary - if [ "$new_file_name" != "$file_name" ]; then - echo "Renaming '$file_path' to '$new_path'" - mv "$file_path" "$new_path" - fi -done <"$1" diff --git a/fuzzy_match b/fuzzy_match deleted file mode 100755 index 2372492..0000000 --- a/fuzzy_match +++ /dev/null @@ -1,27 +0,0 @@ -#!/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -# -# This file was generated by RubyGems. -# -# The application 'fuzzy_match' is installed as part of a gem, and -# this file is here to facilitate running it. -# - -require 'rubygems' - -version = ">= 0.a" - -str = ARGV.first -if str - str = str.b[/\A_(.*)_\z/, 1] - if str and Gem::Version.correct?(str) - version = str - ARGV.shift - end -end - -if Gem.respond_to?(:activate_bin_path) -load Gem.activate_bin_path('fuzzy_match', 'fuzzy_match', version) -else -gem "fuzzy_match", version -load Gem.bin_path("fuzzy_match", "fuzzy_match", version) -end diff --git a/httpclient b/httpclient deleted file mode 100755 index 1f8481d..0000000 --- a/httpclient +++ /dev/null @@ -1,27 +0,0 @@ -#!/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -# -# This file was generated by RubyGems. -# -# The application 'httpclient' is installed as part of a gem, and -# this file is here to facilitate running it. -# - -require 'rubygems' - -version = ">= 0.a" - -str = ARGV.first -if str - str = str.b[/\A_(.*)_\z/, 1] - if str and Gem::Version.correct?(str) - version = str - ARGV.shift - end -end - -if Gem.respond_to?(:activate_bin_path) -load Gem.activate_bin_path('httpclient', 'httpclient', version) -else -gem "httpclient", version -load Gem.bin_path("httpclient", "httpclient", version) -end diff --git a/llm b/llm deleted file mode 100755 index 0bf58bf..0000000 --- a/llm +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -murder ollama -tmux new-session -d -s ollama -n ollamapane - -tmux split-window -h -t ollama -tmux select-pane -t 0 -tmux send-keys -t 0 "source ~/.zshrc" C-m -tmux send-keys -t 0 "ollama serve; sleep 1" C-m - -tmux select-pane -t 1 -tmux send-keys -t 1 "source ~/.zshrc" C-m - diff --git a/master b/master deleted file mode 100755 index f84353a..0000000 --- a/master +++ /dev/null @@ -1,3 +0,0 @@ -st -api -comfy diff --git a/nukenode b/nukenode deleted file mode 100755 index d3ca83d..0000000 --- a/nukenode +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/bash - -# Uninstall global npm packages -npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm - -# Uninstall Node.js and npm -brew uninstall node -brew uninstall npm - -# Remove npm, Node.js, and nvm directories -sudo rm -rf /usr/local/lib/node_modules -sudo rm -rf ~/.npm -sudo rm -rf /usr/local/bin/npm -sudo rm -rf /usr/local/share/man/man1/node* -sudo rm -rf /usr/local/bin/node -sudo rm -rf /usr/local/lib/node_modules/ -sudo rm -rf /usr/local/include/node/ -rm -rf ~/.nvm - -# Clean up Node.js and npm related files -sudo rm -rf ~/.node* -sudo rm -rf ~/.npm* - -# Remove Yarn -brew uninstall yarn -rm -rf ~/.yarn - -# Clean up Homebrew -brew cleanup - -# Remove package manager cache -rm -rf ~/.yarn-cache -rm -rf ~/.pnpm-store - -# Remove other version managers -brew uninstall n -rm -rf /usr/local/n -rm -rf /usr/local/bin/n - -# Remove temporary directories -rm -rf /tmp/npm-* -rm -rf /tmp/node-* -rm -rf ~/Library/Caches/com.apple.DiagnosticReporting.nettopologyd/node_modules/ - -# Remove Browserify and Webpack cache -rm -rf ~/.config/browserify -rm -rf ~/.config/webpack -rm -rf ~/.cache/webpack - -# Remove Electron cache -rm -rf ~/.electron - -# Remove npm and Node.js logs -rm -rf ~/.npm/_logs -rm -rf ~/.node-gyp/*.log - -# Remove miscellaneous directories -rm -rf ~/.node_repl_history -rm -rf ~/.v8flags* -rm -rf ~/.npm-global -rm -rf ~/.nvm-global - -# Remove any references to Node.js or npm from shell profile files -sed -i '' '/# Node.js/d' ~/.bashrc ~/.bash_profile ~/.zshrc -sed -i '' '/export PATH=.*node.*/d' ~/.bashrc ~/.bash_profile ~/.zshrc -sed -i '' '/export PATH=.*npm.*/d' ~/.bashrc ~/.bash_profile ~/.zshrc - -echo "Node.js, npm, and nvm have been removed." diff --git a/nv_mount b/nv_mount deleted file mode 100755 index c0d9959..0000000 --- a/nv_mount +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -SESSION_NAME="$1" -# Attach to tmux session and activate Conda environment -tmux send-keys -t "$SESSION_NAME" "conda activate $SESSION_NAME" C-m -tmux attach -t "$SESSION_NAME" - diff --git a/scrape b/scrape deleted file mode 100755 index 09255ff..0000000 --- a/scrape +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/bash - -# Network share URL -NETWORK_SHARE="smb://10.13.37.10/Media" - -# Attempt to open the network share using Finder -# echo "Attempting to mount the network share..." -# open "${NETWORK_SHARE}" || { echo "Failed to access network share."; exit 1; } - -# Optionally, add a sleep command to allow some time for the share to mount before proceeding. -# sleep 5 - -# First input argument, could be a URL or a variant -FIRST_ARG="$1" - -# Function to detect if the input is a URL -is_url() { - if [[ "$1" =~ ^https?:// ]]; then - echo "true" - else - echo "false" - fi -} - -# Function to determine the variant based on the URL's domain -detect_variant_from_url() { - local domain=$(echo "$FIRST_ARG" | awk -F/ '{print $3}' | sed -e 's/^www\.//') - - case "$domain" in - *incestflix.com) - echo "if" - ;; - *xvideos.com) - echo "xv" - ;; - *familyporn.tv) - echo "fptv" - ;; - *pornhub.com) - echo "ph" - ;; - *motherless.com) - echo "ml" - ;; - *xnxx.com) - echo "xnxx" - ;; - *9vids.com) - echo "9v" - ;; - *) - echo "unrecognized" - ;; - esac -} - -# Determine if the first argument is a URL -if [[ $(is_url "$FIRST_ARG") == "true" ]]; then - VARIANT=$(detect_variant_from_url) - if [ "$VARIANT" = "unrecognized" ]; then - echo "Domain not recognized. Exiting." - exit 1 - fi - # For URLs, pass the entire set of arguments to the scraper script - ARGS="$@" -else - # For direct variant inputs, the variant is the first argument, and the rest are additional parameters - VARIANT="$1" - # Shift the first argument off, leaving the rest as $@ - shift - ARGS="$@" -fi - -# Activate the Conda environment -source /home/sij/miniforge3/bin/activate scrape - -# Run the Python script, adjusting for either URL or direct variant input -/home/sij/miniforge3/envs/scrape/bin/python "/home/sij/workshop/.private/videoscraper/videoscraper-$VARIANT.py" $ARGS - diff --git a/temp.txt b/temp.txt deleted file mode 100644 index d0ef244..0000000 --- a/temp.txt +++ /dev/null @@ -1,33 +0,0 @@ -List of files in /Users/sij/Nextcloud/notes with nonconforming names: - -/Users/sij/Nextcloud/notes/clippings/Personal — Mac (Metal) support- · Issue #114 · yl4579-StyleTTS2-58274.md -/Users/sij/Nextcloud/notes/clippings/Dependencies missing for Insightface · Issue #162 · cubiq-ComfyUI_IPAdapter_plus · GitHub-12313.md -/Users/sij/Nextcloud/notes/clippings/Personal — Enable opening from Finder · Issue #102 · warpdotdev-Warp-50868.md -/Users/sij/Nextcloud/notes/clippings/Personal — TTS example on colab not working · Issue #113 · mozilla-TTS-32446.md -/Users/sij/Nextcloud/notes/unsorted/<% tp.date.now("YYYY-MM-DD dddd", 1, tp.file.title, "YYYY-MM-DD dddd") %>.md -/Users/sij/Nextcloud/notes/unsorted/Awareness > Thought.md -/Users/sij/Nextcloud/notes/unsorted/Debate on DGR about "colonial veganism".md -/Users/sij/Nextcloud/notes/unsorted/Nov 22, 2022 at 11-51 AM— "Transcription Editing Instructions".md -/Users/sij/Nextcloud/notes/unsorted/Happy Mother’s Day, .md -/Users/sij/Nextcloud/notes/unsorted/May 19, 2023 at 7-05 PM— "The Best Text-to-Speech Tools".md -/Users/sij/Nextcloud/notes/unsorted/2023-05-24 — "Job Change Check-in with Sanjay".md -/Users/sij/Nextcloud/notes/unsorted/Sangye & Casetext | Zoom Meeting - [[2023-05-31-Wednesday]].md -/Users/sij/Nextcloud/notes/unsorted/2023-05-24 — "Bureau authorizes timber sales impacting owls".md -/Users/sij/Nextcloud/notes/unsorted/Jan 30, 2023 at 2-46 PM— "Transcribed Raw Voice Recording".md -/Users/sij/Nextcloud/notes/unsorted/What can be appealed?.md -/Users/sij/Nextcloud/notes/unsorted/I’ve discovered awe... but what was my name?.md -/Users/sij/Nextcloud/notes/unsorted/May 25, 2023 at 12-09— "Exciting Buyout News from Michigan".md -/Users/sij/Nextcloud/notes/unsorted/Nov 9, 2022 at 3-10 PM— Title suggestion- "North Project Threatens Spotted Owl".md -/Users/sij/Nextcloud/notes/unsorted/Call with .md -/Users/sij/Nextcloud/notes/unsorted/Nov 9, 2022 at 15-31— Title- "Habitat loss and endangered owls".md -/Users/sij/Nextcloud/notes/unsorted/“Hear Me" Trilogy.md -/Users/sij/Nextcloud/notes/unsorted/May 27, 2023 at 14-02— "Transcription Editing Tips".md -/Users/sij/Nextcloud/notes/unsorted/May 24, 2023 at 08-06— "Consider Avoiding Grocery Stores".md -/Users/sij/Nextcloud/notes/unsorted/Human Rights Watch | Defending Human Rights Worldwide.md -/Users/sij/Nextcloud/notes/unsorted/Sep 1, 2021 - Clinic Meeting #2.md -/Users/sij/Nextcloud/notes/unsorted/May 25, 2023 at 12-08— "Raw Voice Recording Transcript- Technical Issues".md -/Users/sij/Nextcloud/notes/unsorted/May 25, 2023 at 19-32— "Taystex Follow-Up on Co-Counsel Request".md -/Users/sij/Nextcloud/notes/unsorted/May 27, 2023 at 14-35— "Voice Recording Test with AI".md -/Users/sij/Nextcloud/notes/unsorted/May 27, 2023 at 15-11— "Transcript Editing Suggestions".md -/Users/sij/Nextcloud/notes/W\&W breakout.md -/Users/sij/Nextcloud/notes/obsidian/resources/awesome-selfhosted#note-taking--editors.webarchive diff --git a/txt-line-merge-abc b/txt-line-merge-abc old mode 100755 new mode 100644 index bebdab2..d6487ea --- a/txt-line-merge-abc +++ b/txt-line-merge-abc @@ -34,3 +34,4 @@ if __name__ == "__main__": else: merge_files(file_paths) + diff --git a/vbox-img b/vbox-img deleted file mode 100755 index e2a8ac0..0000000 --- a/vbox-img +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -exec /Applications/VirtualBox.app/Contents/MacOS/vbox-img "$@" diff --git a/vboximg-mount b/vboximg-mount deleted file mode 100755 index 99be242..0000000 --- a/vboximg-mount +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -exec /Applications/VirtualBox.app/Contents/MacOS/vboximg-mount "$@" diff --git a/xtts b/xtts deleted file mode 100755 index a8d7fbf..0000000 --- a/xtts +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/bash - -# Default voice -VOICE="m_50_news" - -SERVER="https://api.sij.ai" - -# Initialize ARGUMENT as an empty string -ARGUMENT="" - -# Process arguments -while [[ $# -gt 0 ]]; do - key="$1" - case $key in - --voice) - VOICE="$2" - shift # past argument - shift # past value - ;; - --voice=*) - VOICE="${key#*=}" # Extracting value after '=' - shift # past argument - ;; - *) - if [ -z "$ARGUMENT" ]; then - ARGUMENT="$1" - else - ARGUMENT="$ARGUMENT $1" - fi - shift # past argument - ;; - esac -done - -# Check if text or file argument is provided -if [ -z "$ARGUMENT" ]; then - echo "Usage: $0 [--voice='voice_name']" - exit 1 -fi - -TIMESTAMP=$(date +"%Y%m%d%H%M%S") -OUTPUT_FILE="/Users/sij/AI/TTS/${TIMESTAMP}_output.wav" - -# Determine if the argument is a file or a string -if [[ "$ARGUMENT" == *".txt" ]]; then - # It's a file, use the text_file parameter - curl -s -X 'POST' \ - "$SERVER/tts/speak" \ - -H 'Authorization: Bearer sk-NhrtQwCHNdK5sRZC' \ - -H 'accept: application/json' \ - -H 'Content-Type: multipart/form-data' \ - -F "file=@$ARGUMENT" \ - -F "voice=$VOICE" \ - -F 'speed=0.9' > "$OUTPUT_FILE" -else - # It's a string, process and use the text parameter - SIMPLE_TEXT=$(echo "$ARGUMENT" | tr -d '\n' | tr -d '\r' | sed 's/[^a-zA-Z0-9 .,?!-]//g' | sed 's/ */ /g') - - curl -s -X 'POST' \ - "$SERVER/tts/speak" \ - -H 'Authorization: Bearer sk-NhrtQwCHNdK5sRZC' \ - -H 'accept: application/json' \ - -H 'Content-Type: multipart/form-data' \ - -F "text=$SIMPLE_TEXT" \ - -F "voice=$VOICE" \ - -F 'speed=0.9' > "$OUTPUT_FILE" -fi - -# Check if the output file was created -if [ ! -f "$OUTPUT_FILE" ]; then - echo "Failed to create audio file." - exit 1 -fi - -# Output the path and play the file -echo "Audio file saved: $OUTPUT_FILE" -afplay "$OUTPUT_FILE" -