A communication system for conveying information from an information source across a communications channel using a joint source channel coding variational autoencoder, comprising an encoder neural network of the joint source channel coding variational autoencoder, the encoder neural network having an input layer having input nodes corresponding to a sequence of source symbols S={S1, S2, . . . , Sm}, the Si, taking values in a finite alphabet S, received at the input layer from the information source as samples thereof, and a channel input layer coupled to the input layer through one or more neural network layers, the channel input layer having nodes corresponding to a channel input distribution vector Zk={Z1, Z2, . . . , ZK}, the Zi, taking values for parameters defining a plurality of distributions, each distribution being sampleable to provide possible values for the Xi, of a channel input vector Xn={X1, X2, . . . , Xn}, the Xi taking values from the available input signal values of the communications channel, wherein the encoder neural network is configured through training to map sequences of source symbols Sm received from the information source directly to a representation as a plurality of distributions that provide possible values for the Xi, of a channel input vector Xn, usable to drive a transmitter to transmit a corresponding signal over the communications channel; a sampler, configured to produce a channel input vector Xn={X1, X2, . . . , Xn} in use by sampling the respective distribution for each channel input X defined by the channel input distribution vector Zk={Zi, Z2, . . . , ZK} output by the channel input layer of the encoder neural network; and a decoder neural network of the joint source channel coding variational autoencoder, the decoder neural network having a channel output layer having nodes corresponding to a channel output vector Yn received from a receiver receiving the signal Xn transmitted by the transmitter and transformed by the communications channel, and an output layer coupled to the channel output layer through one or more neural network layers, having nodes matching those of the input layer of the encoder neural network, wherein the decoder neural network is configured through training to map the representation of the source symbols as the channel output vector Yn transformed by the communications channel to a reconstruction of the source symbols Sm output from the output layer of the joint source channel coding variational autoencoder, the reconstruction of the source symbols Sm being usable to reconstitute the information source.