From the question, it is not clear which language you are using or how you want the sentence to be split.
You're looking for a sentence detector, though. If you're using Python, you can use NLTK's sent_detector
module. By default, it will break up your sentence as:
>>> import nltk
>>> sent_detector = nltk.data.load('tokenizers/punkt/english.pickle')
>>> txt = '"Awake? How long have been asleep?" asked teenagers at the same time.'
>>> sent_detector.tokenize(txt)
['"Awake?', 'How long have been asleep?', '" asked teenagers at the same time.']
If the placement of the quotation marks is important, you can do:
>>> sent_detector.tokenize(txt.strip(), realign_boundaries=True)
['"Awake?', 'How long have been asleep?"', 'asked teenagers at the same time.']
You can also train a model, using punkt. In this case, you would feed it examples split up the way you like, and it would learn the pattern.