Ejecutar un comando de terminal de Linux en java?

Estoy tratando de ejecutar un comando SOX desde Java, pero desafortunadamente cada vez se produce un error. Sin embargo, todos los demás comandos SOX funcionan perfectamente! Aquí está el código:

class Simple {
    public static void main(String args[]) throws IOException, Exception {
        Process p;
        BufferedReader br;
        String co = "sox speech_16.wav -p pad 0 2.5 | sox - -m speech_16.wav speech_output.wav";
        p = Runtime.getRuntime().exec(co);
        br = new BufferedReader(new InputStreamReader(p.getInputStream()));
            int returnCode = p.waitFor();
        System.out.println("reurn code : "+returnCode);         
    }
}

Cuando estoy ejecutando el mismo comando sox en el terminal, está funcionando bien. Realmente no puedo entender cual es el problema !! ¿Es por el '|' ¿¿símbolo??

Respuestas a la pregunta(2)

Su respuesta a la pregunta