mirror of
https://github.com/ggerganov/whisper.cpp.git
synced 2024-12-20 21:23:06 +00:00
3e5c7feeff
* whisper : add grammar-based sampling * build : fix after master merge * command : fix exception when recognizing the command * whisper : fine-tuning grammar functionality * command : grammar-related improvements - option to read grammar from file - add sample grammars for colors and chess moves - fine-tune the performance further * grammars : add assistant + update comments * command : enable beam-search, add "no_timestamps", add "context", add p * whisper : remove comment --------- Co-authored-by: Georgi Gerganov <ggerganov@gmail.com>
58 lines
2.3 KiB
Plaintext
58 lines
2.3 KiB
Plaintext
# - "turn on lights."
|
|
# - "set thermostat to 22."
|
|
# - "increase TV by 10."
|
|
# - "decrease oven by 50."
|
|
# - "play music."
|
|
# - "stop podcast."
|
|
# - "schedule cleaning at 3pm."
|
|
# - "cancel cleaning."
|
|
# - "remind me to buy milk at 5pm."
|
|
# - "show me security system."
|
|
# - "hide washing machine."
|
|
# - "what is the lights status?"
|
|
# - "what is the current thermostat value?"
|
|
# - "what is the security system status?"
|
|
# - "what is the door lock status?"
|
|
# - "what is the camera battery level?"
|
|
# - "what is the weather like today?"
|
|
# - "what is the forecast for tomorrow?"
|
|
# - "what is the time?"
|
|
# - "what is my schedule for today?"
|
|
# - "what tasks do I have?"
|
|
# - "what reminders do I have?"
|
|
#
|
|
# example:
|
|
#
|
|
# ./command -m ./models/ggml-tiny.en.bin -t 8 --grammar ./grammars/assistant.gbnf --prompt "Ok Whisper, start listening for commands." --context "Whisper is a home assistant. It recognizes voice commands. Time is 11pm." --grammar-penalty 10
|
|
#
|
|
|
|
root ::= init " " (command | question) "."
|
|
prompt ::= init
|
|
|
|
# leading space is very important!
|
|
init ::= " Ok Whisper, start listening for commands."
|
|
|
|
command ::= "Turn " ("on" | "off") " " device | "Set " device " to " value |
|
|
"Increase " device " by " value | "Decrease " device " by " value |
|
|
"Play " media | "Stop " media | "Schedule " task " at " time | "Cancel " task |
|
|
"Remind me to " task " at " time | "Show me " device | "Hide " device
|
|
|
|
question ::= "What is the " device " status?" | "What is the current " device " value?" |
|
|
"What is the " device " temperature?" | "What is the " device " humidity?" |
|
|
"What is the " device " power consumption?" | "What is the " device " battery level?" |
|
|
"What is the weather like today?" | "What is the forecast for tomorrow?" |
|
|
"What is the time?" | "What is my schedule for today?" | "What tasks do I have?" |
|
|
"What reminders do I have?"
|
|
|
|
device ::= "lights" | "thermostat" | "security system" | "door lock" | "camera" | "speaker" | "TV" |
|
|
"music player" | "coffee machine" | "oven" | "refrigerator" | "washing machine" |
|
|
"vacuum cleaner"
|
|
|
|
value ::= [0-9]+
|
|
|
|
media ::= "music" | "radio" | "podcast" | "audiobook" | "TV show" | "movie"
|
|
|
|
task ::= [a-zA-Z]+ (" " [a-zA-Z]+)?
|
|
|
|
time ::= [0-9] [0-9]? ("am" | "pm")?
|