My answer to: (To vote and comment on Quora, visit the link here.)
In the Hindustani* language, when the sound /h/ is surrounded by the sound /ə/ on both sides, both of those occurrences of /ə/ change to the sound /ɛ/.
Pre-requisite: About the schwa and schwa deletion
To explain the answer, I will first explain the schwa and the schwa deletion. (I am coming to the actual answer in a while.)
The schwa is simply the sound between /k/ and /h/ in the word कहना. The schwa is the sound of a in “about”, and o in “period”. This schwa sound is phonetically represented by the symbol /ə/.
Theis the omission of the schwa sound even when it should have been pronounced according to spelling. Come on, a Hindi speaker drops the schwa every minute he talks. When you are calling yourself “Raam” instead of “Raama”, you are dropping the ending “a”. When you are pronouncing a word like सपना as if it were सप्ना, you are deleting the schwa between /p/ and /n/, i.e. /səpna:/ instead of /səpəna:/. Let’s represent the schwa-dropped word as /səp(ə)na:/, (i.e. the schwa in parentheses), okay?
Finally, the answer
So, one of the interesting features of the Hindustani phonology occurs when the sound /h/ is surrounded by the schwa /ə/ (a dropped schwa or otherwise) on both sides, as in the word कहना /kəh(ə)naː/. Note that the second /ə/ here is usually a dropped schwa when you pronounce this word, but the schwa is there nonetheless. In this situation, the /ə/ changes to its allophone** /ɛ/ (this symbol represents the sound e as in “pen”).
So, the word कहना becomes /kɛh(ɛ)na:/
वह becomes /wɛh(ɛ)/ instead of /wəh(ə)/
सहमति is more often heard as /sɛh(ɛ)məti/ instead of /səh(ə)məti/
And, this is also the reason why
कहानी is not /kɛha:ni:/ (reason: the sound /h/ is preceded by the schwa, but it is immediately followed by the /a:/ sound, not the schwa. The change occurs only when /h/ is surrounded by schwa on both sides.)
सपना is never heard as /sɛp(ɛ)na:/ (reason: there is no sound /h/; here the sound /p/ is surrounded by schwas on both sides)
Same reason for “कहेंगे”.
The case for “bahut -> bohot” is similar. The sound /h/ surrounded by /ə/ and /ʊ/ allows them both to change to /o/.
Note: These are not “rules”; these are accent effects.