I have a hosting with a PHP file which gets the request, take a string from it and have to give to Go (GoLang) script. How could I do it?
package main My GO script:
package main
import (
"log"
"fmt"
"io/ioutil"
"strings"
ivona "github.com/jpadilla/ivona-go"
)
func main() {
client := ivona.New("GDNAICTDMLSLU5426OAA", "2qUFTF8ZF9wqy7xoGBY+YXLEu+M2Qqalf/pSrd9m")
text, err := ioutil.ReadFile("/Users/Igralino/Desktop/text.txt")
if err != nil {
log.Fatal(err)
}
arrayOfParagraphs := strings.Split(string(text), "
")
i := 0
for _,paragraph := range arrayOfParagraphs {
paragraph = strings.TrimSpace(paragraph)
if (len(paragraph) < 1) { // against empty lines
continue
}
log.Printf("%v
", paragraph)
options := ivona.NewSpeechOptions(paragraph)
options.Voice.Language = "ru-RU"
options.Voice.Name = "Maxim"
options.Voice.Gender = "Male"
options.OutputFormat.Codec = "MP3"
r, err := client.CreateSpeech(options)
if err != nil {
log.Fatal(err)
}
i++
file := fmt.Sprintf("/Users/Igralino/Desktop/tts%04d.MP3", i) // files like 0001.ogg
ioutil.WriteFile(file, r.Audio, 0644)
}
}
Go is not a scripting language! It is a compiled one.
A compiled language is a programming language whose implementations are typically compilers (translators that generate machine code from source code), and not interpreters (step-by-step executors of source code, where no pre-runtime translation takes place).
So usage of "script" term is dramatically wrong!
You must build and install your program first. This is easy if you already prepared and configured your Go environment:
$go install github.com/user/hello
Than you can invoke it from command line since it is installed to OS.
$hello
If your program should expect arguments use flag package to declare it.
$hello -name <value>
Obviously you can call it from PHP with system
function or whatever is possible (I don't know nothing about PHP).
Other way is to design your Go program as a daemon and communicate with it directly through a port for example. Your Go program must run continuously and listen for a port. A good answer about daemonization of Go programs.