Looks good 'nuff to me as-is David.
Some minor tweaks might be:
The mouth might close a bit between "I" and "Cannot".
The mouth might close much more on the "n" of "cannot"
The last sound of "I" is actually "EE". You could probably extend the "EE" pose from the last part of "I" all the way to the "not" of "Cannot".
I usually save lip sync till the last because it is mostly just tedious work unless there is a special close up shot where the character really needs to show something special going on with the lips. Purists will probably pummel me for that, but oh well

I have found a pretty good way to get acceptable lip sync done fast. This is the "production" method, mind you, not the "artistic" method.
Create a separate Action for the lip sync. In this Action, Only do the lip sync, not the other facial animation. (Do the other facial animation in a Chor Action)
Find the Null (or bone) that controls the Jaw Open/Close and nudge it to create channels for it. For Squetch rig, it is the Sync null. For LiteFace (Krewl, Gloria), it is the Jaw Control null.
Save the project. For some reason this is necessary for the channels to show up.
Select the channel that specifically causes the Jaw to go up and down. I believe on the Squetch face rig, it is the "Translate.Y" channel. For LiteFace (Krewl, Gloria), it is the "Translate.Z" channel.
Go into Channel View. The only channel viewable in the Channel window should be the Translate.Y or the Translate.Z channel (depending on the rig).
Click on the spline in the Channel View window 1 or 2 frames before the character speaks (generally) to place a keyframe with a value of 0 (mouth closed).
Go forward about 2 frames and click on the the spline again to set a keyframe, then drag the keyframe down (or up) to open the jaw the appropriate amount.
Go forward until 2 frames before the end of the word or syllable and click on the spline again to set a keyframe.
Go 2 frames forward and click on the spline again to set another keyframe, then drag the keyframe up to 0 to close the mouth, or up as far as appropriate to close the mouth the desired amount.
Go through the entire dialog this way to get the basic Jaw Open/Close keyframes set.
Then work on the "O" sounds.
Go back to frame 0 (or the first spoken word).
Select the Null that controls to "O" pose. In the Squetch Rig, it is Translate.X channel of the Sync Null. For LiteFace, it is usually the Translate.X channel of the Mouth Corners Master null.
Go through the entire dialog placing keyframes for the O sounds in the appropriate places.
Then work on the MPB/FV/EE sounds.
Go back to frame 0 (or the first spoken word).
Select the Null that controlls these poses. For the Squectch rig, it is the LipsNull. For LiteFace, it is the MPB_FV_EE null.
Go through the entire dialog, placing keys for the appropriate MPB/FV/EE poses.
Doing it this way, I'm able to knock out all the lip sync in a fraction of the time it used to take me.
Of course, this method may not work for you ... but it's worth a try anyway,
[Note]
The rule of thumb is: Allow 2 frames between a closed mouth and an open mouth.
For words that are spoken too fast to allow for the general rule of thumb, and you must place the keyframes only 1 frame apart, just barely open the mouth. This prevents the mouth from appearing to "pop" open and closed, while still allowing for the enunciation of the word or sylable.