Count up by Syllables
Mathematica, 117 bytes

For[t=1,t&lt;=#,t+=Length[Join@@(#~WordData~"Hyphenation"&amp;/@StringSplit[Echo@t~IntegerName~"Words",{"‐",", "," "}])]]&amp;


Pure function taking a nonnegative integer as input; it echoes the appropriate integers to the standard output one at a time.

There might well be a shorter implementation in Mathematica, but this is the lazy one  :)  t~IntegerName~"Words" gives the English name of the integer t; then StringSplit[...,{"‐",", "," "}] divides this name into a list of individual words. (Mathematically annoyingly uses the 3-byte character ‐ (U+2010) for the hyphen in names of integers.) #~WordData~"Hyphenation"&amp;/@ splits each of those words into a list of its syllables, and Length[Join@@(...)] counts these syllables.

Thus the function, after initializing t=1, loops as long as t doesn't exceed the input; each time, it prints t and then augments it by the number of syllables in the English name of t. In principle, this algorithm works up to 1036–1, at which point the hyphenation dictionary doesn't have an entry for "undecillion".