One approach would be to look at the volume (amplitude) of the audio signal at each point in time. If the signal falls below some configured level (accounting for any noise in the recording), treat it as silence. Then, if the silence occurs for at least a configured duration (e.g. 10ms) mark it as actual silence with the start and end times.
That will not give you the start/end of each sentence, but of each utterance (i.e. when the speaker decided to pause). This will tend to correlate to phrase-terminal (comma, etc.) and sentence-terminal (full stop, etc.), but not necessarily. For example, a speaker may pause before a conjunction ("and", etc.).
To provide better results, you need to perform full speech recognition on the audio with the text as a reference to match against. A simplistic approach here would be to match a few words around the sentence terminal, but you need to be careful to avoid word sets that could occur within the sentence itself.
Speech recognition is complex, and is harder to do when you don't know what is being said. This is because of accent differences, like the don-dawn merger in some American English acccents, suprasegmental features changing phonemes between words such as with the linked r sound (e.g. in "China and Taiwan"), and changes due to normal/informal speech.
Due to these problems, knowing what text is meant to be spoken can be used as a hint to the speech recognising algorithm to help guide its internal models (e.g. recognising 'atom' instead of 'Adam' for an American English speaker). This is still complex, because speakers may rephrase parts of the text, repeat some words or phrases, or introduce words such as 'er' and 'um'.
I don't know what software is available to provide the above functionality.