Sample code for 30+ languages & platforms
DataFlex

IBM Cloud - Text to Speech - Synthesize Audio (GET)

See more IBM Text to Speech Examples

Synthesizes text to audio that is spoken in the specified voice.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoHttp
    String sMyBaseUrl
    Handle hoSbUrl
    Integer iNumReplaced
    String sTextToSynthesize
    Variant vBdResponseBody
    Handle hoBdResponseBody
    Integer iRespStatusCode
    String sTemp1

    Move False To iSuccess

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    Get Create (RefClass(cComChilkatHttp)) To hoHttp
    If (Not(IsComObjectCreated(hoHttp))) Begin
        Send CreateComObject of hoHttp
    End

    Set ComLogin Of hoHttp To "apikey"
    Set ComPassword Of hoHttp To "my_apikey"
    Set ComBasicAuth Of hoHttp To True

    // Use your base URL shown in the credentials web page (below your apikey)
    Move "https://api.us-south.text-to-speech.watson.cloud.ibm.com/instances/31941e96-7b89-4d56-8993-9cd8f18ec2d8" To sMyBaseUrl

    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbUrl
    If (Not(IsComObjectCreated(hoSbUrl))) Begin
        Send CreateComObject of hoSbUrl
    End
    Get ComAppend Of hoSbUrl sMyBaseUrl To iSuccess
    Get ComAppend Of hoSbUrl "/v1/synthesize?accept=ACCEPT_TYPE&voice=CHOSEN_VOICE&text=TEXT_TO_SYNTHESIZE" To iSuccess

    // Choose "audio/wav" for the output file type.
    Get ComUrlEncode Of hoHttp "audio/wav" To sTemp1
    Get ComReplace Of hoSbUrl "ACCEPT_TYPE" sTemp1 To iNumReplaced
    // See the choices for voices at https://cloud.ibm.com/apidocs/text-to-speech#synthesize-audio-get
    Get ComReplace Of hoSbUrl "CHOSEN_VOICE" "en-US_MichaelVoice" To iNumReplaced
    Move "When life gives you lemons, order the lobster tail." To sTextToSynthesize
    Get ComUrlEncode Of hoHttp sTextToSynthesize To sTemp1
    Get ComReplace Of hoSbUrl "TEXT_TO_SYNTHESIZE" sTemp1 To iNumReplaced

    // Send the GET to synthesize the voice.
    // The response file will be contained in bdResponseBody
    Get Create (RefClass(cComChilkatBinData)) To hoBdResponseBody
    If (Not(IsComObjectCreated(hoBdResponseBody))) Begin
        Send CreateComObject of hoBdResponseBody
    End
    Get ComGetAsString Of hoSbUrl To sTemp1
    Get pvComObject of hoBdResponseBody to vBdResponseBody
    Get ComQuickGetBd Of hoHttp sTemp1 vBdResponseBody To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComLastStatus Of hoHttp To iRespStatusCode
    Showln "response status code = " iRespStatusCode

    If (iRespStatusCode = 200) Begin
        Get ComWriteFile Of hoBdResponseBody "qa_output/lobster.wav" To iSuccess
        Showln "Success!"
    End
    Else Begin
        Get ComGetString Of hoBdResponseBody "utf-8" To sTemp1
        Showln sTemp1
    End



End_Procedure