IR codes are fairly complex things, and whereas the RC6 and then the "Pronto" format was standard a few years ago there have been a few variations since.
Originally UR recommended the Keene "IR Anywhere" hardware, and that is what I am still using. The Keene will use Pronto codes sent over IP from the UR server. I have had to keep an old UR app version for learning the pronto codes (V 3.0.23) as changes were made to UR "IR learn" in later versions of the app so that commands could be sent directly to the Phone or Tablet built in "Blaster" in a completely different format.
The UR server and the app can therefore both send codes for IR transmission, but in different formats, and you would need different versions of the app for each format (for when you need to "learn" codes). I don't know of a translator between these two formats, but it could be done using the two versions of the app and "learning" on one whilst transmitting on the other.
The app has built in functions that let you choose to which sender the data should go (local or server)........ but I doubt that either have functions for sending directly to a UART on the Rpi.
However you might be able to send the raw strings as a script.
Help here......... https://github.com/unifiedremote/Docs ..... but not a lot about IR.
Google voice is integrated in the Android app in some manner (see the app preferences) but I have never tried to use it and so I don't know its capabilities.