Sample code for 30+ languages & platforms
VBScript

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

See more IBM Text to Speech Examples

Synthesizes text to audio that is spoken in the specified voice. Uses a POST which allows for more text to be synthesized.

Chilkat VBScript Downloads

VBScript
Dim fso, outFile
Set fso = CreateObject("Scripting.FileSystemObject")
'Create a Unicode (utf-16) output text file.
Set outFile = fso.CreateTextFile("output.txt", True, True)

success = 0

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

set http = CreateObject("Chilkat.Http")

http.Login = "apikey"
http.Password = "my_apikey"
http.BasicAuth = 1

' Send the following request:

' curl -X POST -u "apikey:{apikey}" 
'    --header "Content-Type: application/json" 
'    --header "Accept: audio/wav" 
'    --data "{\"text\":\"When life gives you lemons, order the lobster tail.\"}" 
'    --output lobster.wav "{url}/v1/synthesize?voice=en-US_AllisonV3Voice"

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

set sbUrl = CreateObject("Chilkat.StringBuilder")
success = sbUrl.Append(myBaseUrl)
success = sbUrl.Append("/v1/synthesize?voice=en-US_AllisonV3Voice")

http.Accept = "audio/wav"

set json = CreateObject("Chilkat.JsonObject")
success = json.UpdateString("text","When life gives you lemons, order the lobster tail.")

url = sbUrl.GetAsString()
set resp = CreateObject("Chilkat.HttpResponse")
success = http.HttpJson("POST",url,json,"application/json",resp)
If (success = 0) Then
    outFile.WriteLine(http.LastErrorText)
    WScript.Quit
End If

respStatusCode = resp.StatusCode
outFile.WriteLine("response status code = " & respStatusCode)

If (respStatusCode = 200) Then
    success = resp.SaveBodyBinary("qa_output/lobster.wav")
    outFile.WriteLine("Success!")
Else
    outFile.WriteLine(resp.BodyStr)
End If


outFile.Close