A method for operating a digital assistant, the method comprising: at an electronic device having one or more processors and memory: receiving a stream of audio, comprising: receiving, from a first time to a second time, a first portion of the stream of audio containing at least a portion of a user utterance; and receiving, from the second time to a third time, a second portion of the stream of audio; determining whether the first portion of the stream of audio satisfies a predetermined condition; in response to determining that the first portion of the stream of audio satisfies a predetermined condition, performing, at least partially between the second time and the third time, operations comprising: causing generation of a text dialogue that is responsive to the at least a portion of the user utterance, wherein the text dialogue can be synthesized as speech output; determining whether the memory of the device stores an audio file having a spoken representation of the text dialogue; and in response to determining that the memory of the device does not store an audio file having a spoken representation of the text dialogue: generating an audio file having a spoken representation of the text dialogue; and storing the audio file in the memory; determining whether a speech end-point condition is detected between the second time and the third time; and in response to determining that a speech end-point condition is detected between the second time and the third time, outputting, to a user of the device, the spoken representation of the text dialogue by playing the stored audio file, thereby synthesizing the text dialogue as speech output. receiving a stream of audio, comprising: receiving, from a first time to a second time, a first portion of the stream of audio containing at least a portion of a user utterance; and receiving, from the second time to a third time, a second portion of the stream of audio; receiving, from a first time to a second time, a first portion of the stream of audio containing at least a portion of a user utterance; and receiving, from the second time to a third time, a second portion of the stream of audio; determining whether the first portion of the stream of audio satisfies a predetermined condition; in response to determining that the first portion of the stream of audio satisfies a predetermined condition, performing, at least partially between the second time and the third time, operations comprising: causing generation of a text dialogue that is responsive to the at least a portion of the user utterance, wherein the text dialogue can be synthesized as speech output; determining whether the memory of the device stores an audio file having a spoken representation of the text dialogue; and in response to determining that the memory of the device does not store an audio file having a spoken representation of the text dialogue: generating an audio file having a spoken representation of the text dialogue; and storing the audio file in the memory; causing generation of a text dialogue that is responsive to the at least a portion of the user utterance, wherein the text dialogue can be synthesized as speech output; determining whether the memory of the device stores an audio file having a spoken representation of the text dialogue; and in response to determining that the memory of the device does not store an audio file having a spoken representation of the text dialogue: generating an audio file having a spoken representation of the text dialogue; and storing the audio file in the memory; generating an audio file having a spoken representation of the text dialogue; and storing the audio file in the memory; determining whether a speech end-point condition is detected between the second time and the third time; and in response to determining that a speech end-point condition is detected between the second time and the third time, outputting, to a user of the device, the spoken representation of the text dialogue by playing the stored audio file, thereby synthesizing the text dialogue as speech output.