Polar Bear, Polar Bear, what do you hear? The text of the children's book Polar Bear, Polar Bear, What Do You Hear?  has a very simple pattern.  You might use the text to teach introductory programming concepts.

My son was quickly bored by this idea, so I decided to play some golf with it instead.

The Challenge

In your programming language of choice, write the smallest program possible which will print the following text.  Output should match exactly, including case, spacing, and punctuation.

Polar Bear, Polar Bear, what do you hear?
I hear a lion roaring in my ear.

Lion, Lion, what do you hear?
I hear a hippopotamus snorting in my ear.

Hippopotamus, Hippopotamus, what do you hear?
I hear a flamingo fluting in my ear.

Flamingo, Flamingo, what do you hear?
I hear a zebra braying in my ear.

Zebra, Zebra, what do you hear?
I hear a boa constrictor hissing in my ear.

Boa Constrictor, Boa Constrictor, what do you hear?
I hear an elephant trumpeting in my ear.

Elephant, Elephant, what do you hear?
I hear a leopard snarling in my ear.

Leopard, Leopard, what do you hear?
I hear a peacock yelping in my ear.

Peacock, Peacock, what do you hear?
I hear a walrus bellowing in my ear.

Walrus, Walrus, what do you hear?
I hear a zookeeper whistling in my ear.

Zookeeper, Zookeeper, what do you hear?
I hear children...

...growling like a polar bear,
roaring like a lion,
snorting like a hippopotamus,
fluting like a flamingo,
braying like a zebra,
hissing like a boa constrictor,
trumpeting like an elephant,
snarling like a leopard,
yelping like a peacock,
bellowing like a walrus...
that's what I hear.
05AB1E, 349 331 330 322 314 311 bytes
•4i;kV_†©:š×Îj€Yå—‚‘%˜ESÎ´þ¤çÑ9¶‹{Å€7¾à{Ì®qA•35B0¡…ing«lV•7ü[¿‘¢wÀ¶à-‚¤î„jHâ™ÐJ'µ‡ÀÂý6›ü‚š¸€%NtÅýµL›fU¥ì€€uîT¡›Ÿ{!œ&gt;'Ì&amp;ý§¨Ü?é&gt;•36B1ð:0¡™D©„, «D‚ø“€À€·€î—«?“¶«¸â€˜€JU¦“„¾“‚˜lv„I “—«0€†€¯¶å.“«0¡`yð«Y¦õ‚˜Nè«sr„ aN5Qi'n«}ð«N9›ijrj¨ðs«…...«}srJˆ}X¯‚ø€Jvy,¶?}…...DU?Y¨vN__i',¶}yð“€è€…“N6Qi'n«}ð®NèJl?}X,“€Š's€À I—«.“?

Try it online
Explanation
•4i;kV_†©:š×Îj€Yå—‚‘%˜ESÎ´þ¤çÑ9¶‹{Å€7¾à{Ì®qA•
Packed string containing the sounds GROWL0ROAR0SNORT0FLUT0BRAY0HISS0TRUMPET0SNARL0YELP0BELLOW0WHISTL
35B0¡…ing«lV
Unpack, split on 0, add &quot;ing&quot; to each word, convert to lower and store in variable Y
•7ü[¿‘¢wÀ¶à-‚¤î„jHâ™ÐJ'µ‡ÀÂý6›ü‚š¸€%NtÅýµL›fU¥ì€€uîT¡›Ÿ{!œ&gt;'Ì&amp;ý§¨Ü?é&gt;•
Packed string containing the animals POLAR1BEAR0LION0HIPPOPOTAMUS0FLAMINGO0ZEBRA0BOA1CONSTRICTOR0ELEPHANT0LEOPARD0PEACOCK0WALRUS0ZOOKEEPER
36B1ð:0¡™
Unpack, replace 1 with space, split on 0 and convert to title case
D©„, «D‚ø
Duplicate, save to register for later use, add &quot;, &quot; to one copy, duplicate that and zip.
“€À€·€î—«?“¶«¸
Dictionary words &quot;what do you hear?&quot;, followed by a new line, added to a new list
â€˜€JU
Cartesian product of list of &quot;Animal, Animal, &quot; and &quot;what do you hear?\n&quot;, flattened and joined and stores it in variable X.
Pruduces list of strings of the form &quot;Animal, Animal, what do you hear?n&quot;.
¦“„¾“‚˜l
Take the remaining list of animals from before, remove the zookeeper and add children, convert to lower case.
v
For each animal:
„I “—«0€†€¯¶å.“«0¡`

Push &quot;I hear0 in my ear.&quot;, split on 0 and push as separate strings.
yð«Y¦õ‚˜Nè«
Push &quot;animal sound&quot; with children having no sound
sr„ a
Push &quot;a&quot; in correct place
N5Qi'n«}
If the animal is &quot;Elephant&quot; add &quot;n&quot;
ð«
Add space.
N9›ijrj¨ðs«…...«}
If animal is children, remove space and add &quot;...&quot;
srJˆ}
Join the sentence &quot;I hear a(n) animal sound in my ear.&quot; (as well as the children one), store in global array and end loop
X¯‚ø€J
Retrieve the first lines, zip and join producing the first part of the rhyme &quot;Animal, Animal, what do you hear?\nI hear a(n) animal sound in my ear.&quot;
vy,¶?}
Print followed by new line.
…...DU?
Print &quot;...&quot; and store a copy in variable X.
Y¨v
For each sound except &quot;whistling&quot;:
N__i',¶}
For each line except the first one, start it with &quot;,\n&quot; (making the comma go on previous line)
yð“€è€…“
Push sound, space and &quot;like a&quot;
N6Qi'n«}
If Elephant add &quot;n&quot;.
ð®NèJl?}X,
Retrieve the animal saved in register, join everything, print and end loop followed by &quot;...&quot;.
This produces the &quot;sound like a(n) animal,&quot; lines.
“€Š's€À I—«.“?
Print dictionary string &quot;that's what I hear.&quot;