この場合、次のコードを使って何をすべきですか?Swift 3のコマンドラインプログラムで "say"を実行する方法は?
func convertToM4A(filename: String, voice: String) -> Bool {
let full_string = speaking_queue?.joined(separator: " ")
let command_string: [String] = [/"-v \"\(voice)\"",*/ "--progress", "--output-file=\"\(filename)\"","-i", " \"\(full_string!)\""]
print(command_string)
/
let DocumentsDirectory = FileManager().homeDirectory(forUser: "shyamalchandra")
print((DocumentsDirectory?.absoluteString)!)
*/
let task = Process()
task.launchPath = "/usr/bin/say"
task.arguments = command_string
let pipe = Pipe()
task.standardOutput = pipe
task.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output: String? = String(data: data, encoding: String.Encoding.utf8)
task.waitUntilExit()
if let output = output {
if !output.isEmpty {
print(output.trimmingCharacters(in: .whitespacesAndNewlines))
}
}
return true
}
実行時に、TERM環境が設定されていないとの文句を言い、さらにファイルをディスクに書き出しません。何をすべきか?
達成したいことは明確ではありません。コンソールログを印刷しますか? –
@ShyamalChandra実際に配列のときに 'command_string'という変数を作るのはなぜですか? ಠ_ – Alexander