TMC is an independent, primarily volunteer organization that relies on ad revenue to cover its operating costs. Please consider whitelisting TMC on your ad blocker and becoming a Supporting Member. For more info: Support TMC
Start a Discussionhttps://teslamotorsclub.com/tmc/tags/

Voice command list - From Car

Discussion in 'Model S: User Interface' started by Ingineer, Jan 18, 2017.

  1. Ingineer

    Ingineer Electrical Engineer

    Joined:
    Aug 8, 2012
    Messages:
    1,458
    Thought this might be of interest; Here is the internal file used to process all voice commands. It's JSON encoded.

    Code:
    {
        "voice_command_list" : [
            {
                "command_type" : "navigate",
                "description" : "drive to",
                "command_regexp" : "^drive to\\b(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "drive 2",
                "command_regexp" : "^drive 2\\b(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "dr to",
                "command_regexp" : "^dr to\\b(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "dr 2",
                "command_regexp" : "^dr 2\\b(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "drive",
                "command_regexp" : "^drive\\b(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "dr",
                "command_regexp" : "^dr\\b(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "navigate to",
                "command_regexp" : "^navigate to\\b(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "navigate 2",
                "command_regexp" : "^navigate 2\\b(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "navigate",
                "command_regexp" : "^navigate\\b(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "where is",
                "command_regexp" : "^where is\\b(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "take me to",
                "command_regexp" : "^take me to\\b(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "take me 2",
                "command_regexp" : "^take me 2\\b(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "take me",
                "command_regexp" : "^take me\\b(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "naviguer à",
                "command_regexp" : "^naviguer à\\b(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "naviguer au",
                "command_regexp" : "^naviguer au\\b(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "aller à",
                "command_regexp" : "^aller à\\b(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "aller au",
                "command_regexp" : "^aller au\\b(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "nach navigieren",
                "command_regexp" : "^nach\\b(.*)\\bnavigieren$"
            },
            {
                "command_type" : "navigate",
                "description" : "zur navigieren",
                "command_regexp" : "^zur\\b(.*)\\bnavigieren$"
            },
            {
                "command_type" : "navigate",
                "description" : "zu navigieren",
                "command_regexp" : "^zu\\b(.*)\\bnavigieren$"
            },
            {
                "command_type" : "navigate",
                "description" : "nach fahren",
                "command_regexp" : "^nach\\b(.*)\\bfahren$"
            },
            {
                "command_type" : "navigate",
                "description" : "zur fahren",
                "command_regexp" : "^zur\\b(.*)\\bfahren$"
            },
            {
                "command_type" : "navigate",
                "description" : "zu fahren",
                "command_regexp" : "^zu\\b(.*)\\bfahren$"
            },
            {
                "command_type" : "navigate",
                "description" : "wo ist",
                "command_regexp" : "^wo ist\\b(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "navigiere nach",
                "command_regexp" : "^navigiere nach\\b(.*)\\b$"
            },
            {
                "command_type" : "navigate",
                "description" : "navigiere zu",
                "command_regexp" : "^navigiere zu\\b(.*)\\b$"
            },
            {
                "command_type" : "navigate",
                "description" : "导航到",
                "command_regexp" : "^导航到(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "在哪",
                "command_regexp" : "^(.*)在哪$"
            },
            {
                "command_type" : "navigate",
                "description" : "开车到",
                "command_regexp" : "^开车到(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "导航去",
                "command_regexp" : "^导航去(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "導航去",
                "command_regexp" : "^導航去(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "導航到",
                "command_regexp" : "^導航到(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "帶我去",
                "command_regexp" : "^帶我去(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "帶我到",
                "command_regexp" : "^帶我到(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "去",
                "command_regexp" : "^去(.*)$"
            },
            {
                "command_type" : "navigate",
                "description" : "到",
                "command_regexp" : "^到(.*)$"
            },
            {
                "command_type" : "call",
                "description" : "call",
                "command_regexp" : "^call\\b(.*)$"
            },
            {
                "command_type" : "call",
                "description" : "dial",
                "command_regexp" : "^dial\\b(.*)$"
            },
            {
                "command_type" : "call",
                "description" : "phone",
                "command_regexp" : "^phone\\b(.*)$"
            },
            {
                "command_type" : "call",
                "description" : "appeler",
                "command_regexp" : "^appeler\\b(.*)$"
            },
            {
                "command_type" : "call",
                "description" : "composer",
                "command_regexp" : "^composer\\b(.*)$"
            },
            {
                "command_type" : "call",
                "description" : "wählen",
                "command_regexp" : "^(.*)\\bwählen$"
            },
            {
                "command_type" : "call",
                "description" : "anrufen",
                "command_regexp" : "^(.*)\\banrufen$"
            },
            {
                "command_type" : "call",
                "description" : "wähle",
                "command_regexp" : "^wählen\\b(.*)$"
            },
            {
                "command_type" : "call",
                "description" : "ruf an",
                "command_regexp" : "^ruf\\b(.*)\\ban$"
            },
            {
                "command_type" : "call",
                "description" : "rufe an",
                "command_regexp" : "^rufe\\b(.*)\\ban$"
            },
            {
                "command_type" : "call",
                "description" : "打电话给",
                "command_regexp" : "^打电话给(.*)$"
            },
            {
                "command_type" : "call",
                "description" : "打电话给",
                "command_regexp" : "^给(.*)打电话$"
            },
            {
                "command_type" : "call",
                "description" : "拨打",
                "command_regexp" : "^拨打(.*)$"
            },
            {
                "command_type" : "call",
                "description" : "打给",
                "command_regexp" : "^打给(.*)$"
            },
            {
                "command_type" : "call",
                "description" : "打電話俾",
                "command_regexp" : "^打電話俾(.*)$"
            },
            {
                "command_type" : "call",
                "description" : "打俾",
                "command_regexp" : "^打俾(.*)$"
            },
            {
                "command_type" : "call",
                "description" : "打電話去",
                "command_regexp" : "^打電話去(.*)$"
            },
            {
                "command_type" : "call",
                "description" : "打去",
                "command_regexp" : "^打去(.*)$"
            },
            {
                "command_type" : "call",
                "description" : "打電話比",
                "command_regexp" : "^打電話比(.*)$"
            },
            {
                "command_type" : "call",
                "description" : "打比",
                "command_regexp" : "^打比(.*)$"
            },
            {
                "command_type" : "note",
                "description" : "note",
                "command_regexp" : "^note\\b(.*)$"
            },
            {
                "command_type" : "note",
                "description" : "report",
                "command_regexp" : "^report\\b(.*)$"
            },
            {
                "command_type" : "note",
                "description" : "bug note",
                "command_regexp" : "^bug note\\b(.*)$"
            },
            {
                "command_type" : "note",
                "description" : "bug report",
                "command_regexp" : "^bug report\\b(.*)$"
            },
            {
                "command_type" : "play",
                "description" : "play",
                "command_regexp" : "^play\\b(.*)$"
            },
            {
                "command_type" : "play",
                "description" : "plays",
                "command_regexp" : "^plays\\b(.*)$"
            },
            {
                "command_type" : "play",
                "description" : "listen to",
                "command_regexp" : "^listen to\\b(.*)$"
            },
            {
                "command_type" : "play",
                "description" : "listens to",
                "command_regexp" : "^listens to\\b(.*)$"
            },
            {
                "command_type" : "play",
                "description" : "listen 2",
                "command_regexp" : "^listen 2\\b(.*)$"
            },
            {
                "command_type" : "play",
                "description" : "listens 2",
                "command_regexp" : "^listens 2\\b(.*)$"
            },
            {
                "command_type" : "play",
                "description" : "écouter",
                "command_regexp" : "^écouter\\b(.*)$"
            },
            {
                "command_type" : "play",
                "description" : "jouer",
                "command_regexp" : "^jouer\\b(.*)$"
            },
            {
                "command_type" : "play",
                "description" : "spielen",
                "command_regexp" : "^(.*)\\bspielen$"
            },
            {
                "command_type" : "play",
                "description" : "hören",
                "command_regexp" : "^(.*)\\bhören$"
            },
            {
                "command_type" : "play",
                "description" : "abspielen",
                "command_regexp" : "^(.*)\\babspielen$"
            },
            {
                "command_type" : "play",
                "description" : "abhören",
                "command_regexp" : "^(.*)\\babhören$"
            },
            {
                "command_type" : "play",
                "description" : "spiele",
                "command_regexp" : "^spiele\\b(.*)$"
            },
            {
                "command_type" : "play",
                "description" : "spiel",
                "command_regexp" : "^spiel\\b(.*)$"
            },
            {
                "command_type" : "play",
                "description" : "播放",
                "command_regexp" : "^播放(.*)$"
            },
            {
                "command_type" : "play",
                "description" : "收听",
                "command_regexp" : "^收听(.*)$"
            },
            {
                "command_type" : "play",
                "description" : "我想聽",
                "command_regexp" : "^我想聽(.*)$"
            }
        ]
    }
    
     
    • Informative x 20
    • Like x 5
  2. Muzzman1

    Muzzman1 Member

    Joined:
    Feb 8, 2014
    Messages:
    278
    Location:
    Los Angeles
    Thanks @Ingineer
    I was hoping there'd be some I don't use, but that's not the case.
    It's kinda sad that ten yrs ago my 2006 Lexus had more commands such as temp settings, and dial by number.
    In the real world, I really only want dial by number, that would be awesome.
     
  3. cynix

    cynix Member

    Joined:
    Jul 7, 2014
    Messages:
    732
    Location:
    Sydney, Australia
    I wish they'd add a "raise suspension" command.
     
    • Like x 1
  4. chillaban

    chillaban Active Member

    Joined:
    May 5, 2016
    Messages:
    1,898
    Location:
    Bay Area
    Thanks, @Ingineer :)

    You've also confirmed to me my general impressions that the voice activated commands understand like 4 commands and appear to use simple pattern matching :D
     
  5. scottf200

    scottf200 Active Member

    Joined:
    Feb 3, 2013
    Messages:
    1,573
    Location:
    Chicagoland ModelX S603
    Simplified viewing the list for English. I like the "where is" and "take me" as a novelty.

    "voice_command_list" : [
    "command_type" : "navigate",
    "description" : "drive to",
    "description" : "drive 2",
    "description" : "dr to",
    "description" : "dr 2",
    "description" : "drive",
    "description" : "dr",
    "description" : "navigate to",
    "description" : "navigate 2",
    "description" : "navigate",
    "description" : "where is",
    "description" : "take me to",
    "description" : "take me 2",
    "description" : "take me",

    "command_type" : "call",
    "description" : "call",
    "description" : "dial",
    "description" : "phone",

    "command_type" : "note",
    "description" : "note",
    "description" : "report",
    "description" : "bug note",
    "description" : "bug report",

    "command_type" : "play",
    "description" : "play",
    "description" : "plays",
    "description" : "listen to",
    "description" : "listens to",
    "description" : "listen 2",
    "description" : "listens 2",
     
    • Like x 3
    • Funny x 1
  6. Joe F

    Joe F Member

    Joined:
    Sep 19, 2016
    Messages:
    359
    Location:
    Willow Grove, PA
    Guess that's why when I tried saying:
    Tire pressure
    Defroster {on, off}
    Steering wheel heater {on, off}

    All I got was, "What you talking about, Willis?"

    Yes, I know tire pressure display can be selected via the steering wheel controls, but really don't like to take eyes off the road at highway speeds.

    Hoping the most advanced car I've ever owned delivers on it's potential...
     
    • Funny x 3
  7. JHuberman

    JHuberman Member

    Joined:
    Dec 28, 2016
    Messages:
    108
    Location:
    Raleigh
    It would be great to have many of the functions voice activated...
    However,
    the car should repeat what it is planning to do and get an OK from the driver before doing anything.
     
    • Disagree x 1
  8. Boatguy

    Boatguy Member

    Joined:
    Apr 3, 2014
    Messages:
    911
    Location:
    SF Bay Area
    For the phone they could start with the basics, like a "Favorites" list of phone numbers in the Phone app.
     
  9. Haggy

    Haggy Member

    Joined:
    Jun 19, 2014
    Messages:
    166
    Location:
    Fremont
    Dial by number was added in 8.0 but never mentioned in the manual or release notes.
     
    • Informative x 1
  10. apacheguy

    apacheguy S Sig #255

    Joined:
    Oct 21, 2012
    Messages:
    4,478
    Location:
    So Cal
    Do they still pay attention to the bug reports?
     
    • Like x 1
  11. Muzzman1

    Muzzman1 Member

    Joined:
    Feb 8, 2014
    Messages:
    278
    Location:
    Los Angeles
    @Haggy What is the syntax to make the call by number?

    Thanks!
     
  12. FlatSix911

    FlatSix911 918 Hybrid

    Joined:
    Jun 15, 2015
    Messages:
    3,898
    Location:
    Silicon Valley
  13. thimel

    thimel Member

    Joined:
    Feb 27, 2015
    Messages:
    411
    Just say "call", "dial" or "phone" and the phone number you want to call, starting with the area code.
     
    • Informative x 1
  14. Muzzman1

    Muzzman1 Member

    Joined:
    Feb 8, 2014
    Messages:
    278
    Location:
    Los Angeles
    Wow. I feel dumb. I just tested, and yes it works perfect.
    I guess I gave up on the idea a couple years ago when it randomly would dial a contact name instead.
    Thanks!
     
    • Funny x 1
  15. thegruf

    thegruf Active Member

    Joined:
    Mar 24, 2015
    Messages:
    1,332
    Location:
    UK
    So limited - so much opportunity missed :(

    I would love to be able to switch audio sources since they hid the damn menu in v8.0
    "Select" | "Source"
    "Radio" | "Spotify" | "Phone" | "USB" etc

    Does make you realise how threadbare the MS was at launch, and how bare it still is in places.

    Then you have to say how brilliant Tesla have been at focussing on the important aspects of the car that will generate sales to get the company to where it is now.

    However Tesla really have to keep progressing as their novelty factor reduces with time.
     
    • Informative x 1
    • Like x 1
  16. hiroshiy

    hiroshiy Supporting Member

    Joined:
    Apr 6, 2013
    Messages:
    1,800
    Location:
    Tokyo, Japan
    In Japanese cars, this feature is killed so we can't use them at all. Are there any JSON element that specifies language? At least I would like to use those voice features in English but they don't seem to work at all in my car.
     
  17. EVie'sDad

    EVie'sDad Member

    Joined:
    Mar 6, 2016
    Messages:
    599
    Location:
    Newark, CA
    Add open or close garage door. To the list.
     
  18. thegruf

    thegruf Active Member

    Joined:
    Mar 24, 2015
    Messages:
    1,332
    Location:
    UK
    There is a slight juxtaposition in that the command set is so limited, yet the actual vr is quite effective
    "Play" "track name of your choice" is really quite impressive
    "Call" "any name from your phonebook" also generally works well.

    However there are two caveats:

    1. you need to be in a strong signal area - this therefore suggests that some/all of the data is sent to/processed by Tesla HQ as has been said elsewhere (not entirely sure I am comfortable with Tesla having my phonebook and dont remember signing up for this anywhere).

    2. I find you have to shout (presumably as the mic is low sensitivity and/or not noise cancelling, which generally means you can only use it when you are in the car on your own unless you want to look like a complete muppet.
     

Share This Page