Providing text from speech recognition to FAB Subtitler BCAST/XCD

FAB Subtitler BCAST/XCD can receive unformatted text from speech recognition systems and convert the text to subtitles. The speech recognition system must send the text with a HTTP POST request to FAB Subtitler BCAST/XCD. FAB Subtitler BCAST/XCD will transmit the text immediately when in “Word by word” mode. In “Block” mode FAB Subtitler BCAST/XCD will wait to receive enough text to fill the complete subtitle and then transmit the complete subtitle. In case that not enough text was received to fill the complete subtitle the incomplete subtitle will be transmitted after a timeout specified in Options of FAB Subtitler BCAST/XCD.

Example of a HTTP POST request

The following is an example of the HTTP POST request that the speech recognition system has to send to FAB Subtitler BCAST/XCD:

HTTP POST ip_of_fabsubtitler_bcast_xcd:port/livesubtitling/esub-xf/displaysubtitle?sid=mycomputername

HEADER: Content-Type: application/xml

BODY:

<?xml version="1.0" encoding="UTF-8"?>
<esub-xf xmlns="urn:esub-xf" framerate="25" timebase="msec">
  <subtitlelist language="eng" type="hardofhearing">
    <subtitle scrolllines="2">
      <hregion>
        <line>First three words.</line>
      </hregion>
    </subtitle>
  </subtitlelist>
</esub-xf>

The text sent to FAB Subtitler BCAST/XCD is “First three words.” The format/protocol that is used for sending data is ESUB-XF which is described here.

You can use the following command line with “curl” to HTTP POST the XML data:

curl -k -H "Content-Type: application/xml" http://127.0.0.1:80/livesubtitling/esub-xf/displaysubtitle?sid=PCName -d "<?xml version=\"1.0\" encoding=\"UTF-8\"?><esub-xf xmlns=\"urn:esub-xf\" framerate=\"25\" timebase=\"msec\"><subtitlelist language=\"eng\" type=\"hardofhearing\"><subtitle scrolllines=\"2\"><hregion><line>First three words.</line></hregion></subtitle></subtitlelist></esub-xf>"

Configuration of FAB Subtitler BCAST/XCD

The reception of texts over REST API must be enabled in Options/System/Network:

  • Enable the web server

  • Activate “Accept incoming subtitles over network” and click on “Protocols / Settings”

  • Enable the HTTP REST API

  • Configure how the received text shall be converted to subtitles

Here you can select between “Block” and “Word by word” mode. Please note that “Word by word” shall not be used for DVB subtitles because it uses 5 to 10 times more bitrate than when using “Block” mode.