From: Nicholas Albion Date: Thu, 1 Jun 2023 12:45:00 +0000 (+1000) Subject: `speak` scripts for Windows X-Git-Tag: upstream/1.7.4~1418 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=5b9e59bc07dd76320354f2af6be29f16dbcb21e7;p=pkg%2Fggml%2Fsources%2Fwhisper.cpp `speak` scripts for Windows --- diff --git a/examples/talk-llama/README.md b/examples/talk-llama/README.md index 295bc4db..01f696d1 100644 --- a/examples/talk-llama/README.md +++ b/examples/talk-llama/README.md @@ -42,8 +42,8 @@ Example usage: ## TTS For best experience, this example needs a TTS tool to convert the generated text responses to voice. -You can use any TTS engine that you would like - simply edit the [speak.sh](speak.sh) script to your needs. -By default, it is configured to use MacOS's `say`, but you can use whatever you wish. +You can use any TTS engine that you would like - simply edit the [speak](speak) script to your needs. +By default, it is configured to use MacOS's `say` or Windows SpeechSynthesizer, but you can use whatever you wish. ## Discussion diff --git a/examples/talk-llama/speak b/examples/talk-llama/speak new file mode 100644 index 00000000..40fdad2d --- /dev/null +++ b/examples/talk-llama/speak @@ -0,0 +1,24 @@ +#!/bin/bash + +# Usage: +# speak.sh + +# espeak +# Mac OS: brew install espeak +# Linux: apt-get install espeak +# +#espeak -v en-us+m$1 -s 225 -p 50 -a 200 -g 5 -k 5 "$2" + +# for Mac +say "$2" + +# Eleven Labs +# To use it, install the elevenlabs module from pip (pip install elevenlabs) +# It's possible to use the API for free with limited number of characters. To increase this limit register to https://beta.elevenlabs.io to get an api key and paste it after 'ELEVEN_API_KEY=' +#Keep the line commented to use the free version whitout api key +# +#export ELEVEN_API_KEY=your_api_key +#wd=$(dirname $0) +#script=$wd/eleven-labs.py +#python3 $script $1 "$2" >/dev/null 2>&1 +#ffplay -autoexit -nodisp -loglevel quiet -hide_banner -i ./audio.mp3 >/dev/null 2>&1 diff --git a/examples/talk-llama/speak.bat b/examples/talk-llama/speak.bat new file mode 100644 index 00000000..d719d690 --- /dev/null +++ b/examples/talk-llama/speak.bat @@ -0,0 +1 @@ +@powershell -ExecutionPolicy Bypass -F examples\talk\speak.ps1 %1 %2 diff --git a/examples/talk-llama/speak.ps1 b/examples/talk-llama/speak.ps1 new file mode 100644 index 00000000..bdc4c5f8 --- /dev/null +++ b/examples/talk-llama/speak.ps1 @@ -0,0 +1,12 @@ +# Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser +param( + # voice options are David or Zira + [Parameter(Mandatory=$true)][string]$voice, + [Parameter(Mandatory=$true)][string]$text +) + +Add-Type -AssemblyName System.Speech; +$speak = New-Object System.Speech.Synthesis.SpeechSynthesizer; +$speak.SelectVoice("Microsoft $voice Desktop"); +$speak.Rate="0"; +$speak.Speak($text); diff --git a/examples/talk-llama/speak.sh b/examples/talk-llama/speak.sh deleted file mode 100755 index 40fdad2d..00000000 --- a/examples/talk-llama/speak.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# Usage: -# speak.sh - -# espeak -# Mac OS: brew install espeak -# Linux: apt-get install espeak -# -#espeak -v en-us+m$1 -s 225 -p 50 -a 200 -g 5 -k 5 "$2" - -# for Mac -say "$2" - -# Eleven Labs -# To use it, install the elevenlabs module from pip (pip install elevenlabs) -# It's possible to use the API for free with limited number of characters. To increase this limit register to https://beta.elevenlabs.io to get an api key and paste it after 'ELEVEN_API_KEY=' -#Keep the line commented to use the free version whitout api key -# -#export ELEVEN_API_KEY=your_api_key -#wd=$(dirname $0) -#script=$wd/eleven-labs.py -#python3 $script $1 "$2" >/dev/null 2>&1 -#ffplay -autoexit -nodisp -loglevel quiet -hide_banner -i ./audio.mp3 >/dev/null 2>&1 diff --git a/examples/talk-llama/talk-llama.cpp b/examples/talk-llama/talk-llama.cpp index cdeb2d9b..57a02eac 100644 --- a/examples/talk-llama/talk-llama.cpp +++ b/examples/talk-llama/talk-llama.cpp @@ -47,7 +47,7 @@ struct whisper_params { std::string language = "en"; std::string model_wsp = "models/ggml-base.en.bin"; std::string model_llama = "models/ggml-llama-7B.bin"; - std::string speak = "./examples/talk-llama/speak.sh"; + std::string speak = "./examples/talk-llama/speak"; std::string prompt = ""; std::string fname_out; std::string path_session = ""; // path to file for saving/loading model eval state diff --git a/examples/talk/README.md b/examples/talk/README.md index 818a4283..fe85795e 100644 --- a/examples/talk/README.md +++ b/examples/talk/README.md @@ -37,5 +37,5 @@ wget --quiet --show-progress -O models/ggml-gpt-2-117M.bin https://huggingface.c ## TTS For best experience, this example needs a TTS tool to convert the generated text responses to voice. -You can use any TTS engine that you would like - simply edit the [speak.sh](speak.sh) script to your needs. -By default, it is configured to use `espeak`, but you can use whatever you wish. +You can use any TTS engine that you would like - simply edit the [speak](speak) script to your needs. +By default, it is configured to use MacOS's `say` or `espeak` or Windows SpeechSynthesizer, but you can use whatever you wish. diff --git a/examples/talk/speak b/examples/talk/speak new file mode 100644 index 00000000..b822f615 --- /dev/null +++ b/examples/talk/speak @@ -0,0 +1,24 @@ +#!/bin/bash + +# Usage: +# speak.sh + +# espeak +# Mac OS: brew install espeak +# Linux: apt-get install espeak +# +#espeak -v en-us+m$1 -s 175 -p 50 -a 200 -g 5 -k 5 "$2" + +# Mac OS "say" command +say "$2" + +# Eleven Labs +# To use it, install the elevenlabs module from pip (pip install elevenlabs) +# It's possible to use the API for free with limited number of characters. To increase this limit register to https://beta.elevenlabs.io to get an api key and paste it after 'ELEVEN_API_KEY=' +#Keep the line commented to use the free version without api key +# +#export ELEVEN_API_KEY=your_api_key +#wd=$(dirname $0) +#script=$wd/eleven-labs.py +#python3 $script $1 "$2" +#ffplay -autoexit -nodisp -loglevel quiet -hide_banner -i ./audio.mp3 diff --git a/examples/talk/speak.bat b/examples/talk/speak.bat new file mode 100644 index 00000000..d719d690 --- /dev/null +++ b/examples/talk/speak.bat @@ -0,0 +1 @@ +@powershell -ExecutionPolicy Bypass -F examples\talk\speak.ps1 %1 %2 diff --git a/examples/talk/speak.ps1 b/examples/talk/speak.ps1 new file mode 100644 index 00000000..bdc4c5f8 --- /dev/null +++ b/examples/talk/speak.ps1 @@ -0,0 +1,12 @@ +# Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser +param( + # voice options are David or Zira + [Parameter(Mandatory=$true)][string]$voice, + [Parameter(Mandatory=$true)][string]$text +) + +Add-Type -AssemblyName System.Speech; +$speak = New-Object System.Speech.Synthesis.SpeechSynthesizer; +$speak.SelectVoice("Microsoft $voice Desktop"); +$speak.Rate="0"; +$speak.Speak($text); diff --git a/examples/talk/speak.sh b/examples/talk/speak.sh deleted file mode 100755 index f6954d12..00000000 --- a/examples/talk/speak.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# Usage: -# speak.sh - -# espeak -# Mac OS: brew install espeak -# Linux: apt-get install espeak -# -#espeak -v en-us+m$1 -s 175 -p 50 -a 200 -g 5 -k 5 "$2" - -# Mac OS "say" command -say "$2" - -# Eleven Labs -# To use it, install the elevenlabs module from pip (pip install elevenlabs) -# It's possible to use the API for free with limited number of characters. To increase this limit register to https://beta.elevenlabs.io to get an api key and paste it after 'ELEVEN_API_KEY=' -#Keep the line commented to use the free version whitout api key -# -#export ELEVEN_API_KEY=your_api_key -#wd=$(dirname $0) -#script=$wd/eleven-labs.py -#python3 $script $1 "$2" -#ffplay -autoexit -nodisp -loglevel quiet -hide_banner -i ./audio.mp3 diff --git a/examples/talk/talk.cpp b/examples/talk/talk.cpp index 0def6444..651ca200 100644 --- a/examples/talk/talk.cpp +++ b/examples/talk/talk.cpp @@ -36,7 +36,7 @@ struct whisper_params { std::string language = "en"; std::string model_wsp = "models/ggml-base.en.bin"; std::string model_gpt = "models/ggml-gpt-2-117M.bin"; - std::string speak = "./examples/talk/speak.sh"; + std::string speak = "./examples/talk/speak"; std::string fname_out; };