If 'free-for-academic-use' is good enough for you, here is a script fragment to do this with the Cactvs Chemoinformatics Toolkit www.xemistry.com/academic):
cactvs>ens get O=C(Oc1ccccc1C(=O)O)C E_IUPAC_PREFERRED_NAME
2-acetyloxybenzoic acid
Or directly from the cpd name:
cactvs>ens get [ens create 'aspirin'] E_IUPAC_PREFERRED_NAME
2-acetyloxybenzoic acid
Internally, this uses PubChem, so it is not an ab-initio name generator which also works with compounds not in a database.
There are also other properties which retrieve the other standardized name variants of a compound stored in PubChem, as well as a way to retrieve all names from the NCI resolver.
PubChem uses OpenEye software to compute the names.