You may not see it as a large number. For example, things like: in, and, -, etc are removed when forming the DefaultSearch string (although they are replaced with spaces).
If there's an overflow vbscript is seeing a large number, plus the code fixed the issue so we know there was a number somewhere causing the issue.
Using a cutoff of 1000 makes sense as the rest of the number conversions only work for numbers less than 1000 (since I wrote that code in less than an hour and never went back to improve it).
Are saying the sentence in this form:
Play song [song name]
in the [room location name]
Did you setup a regular expression for the room location and is it mutually exclusive as shown in the video?
Did you try typing it in the test field of SpeechParser?
Does the media zone work using the AB?
Does the provider have a MediaType defined (e.g. album|song)?
Does it load the song into "NowPlaying" under the media zone?
There's no way for me to know how the names are setup and if you are saying things exactly, etc. If you use KODI and set it up as the videos show, things will work.
For example, I see Premise natively sets the "Name" value for a song as the actual filename. This will never result in a match (and why would it unless you also say the track number). The song's DefaultSearch value has to match what you said, or it will not work.
And... Premise needs to use proper metadata and not rely on FileName only, otherwise the DefaultSearch would have a track number in it, file extension, etc... If it can't read the metadata correctly, it will never work unless you manually define the match using the song's UserDefinableSearch field as the KODI video shows.
I'm using Windows 10, but Premise attempts to play the song navitely so I believe it would work under Windows 7 (sets NowPlaying under the media zone). I think Windows 10 may have broken the native playback via a soundcard output feature. Premise attempts to play the track, then immediately stops it (can't test Windows 7 right now and may never get around to it to be honest).