Cream the butter and sugar on low with a hand mixer or stand mixer fitted with paddle attachment. After 1 minute, increase the speed to medium-high and continue beating for 2 minutes until creamy and light. Add eggs, one at a time, beating well after each addition. Add sour cream and extracts; mix well. In a separate bowl, whisk the flour, cocoa, baking soda and salt; add to the creamed mixture alternately with buttermilk, beating on low after each addition. Use a spatula to fold the mixture (scooping along the bottom especially) to incorporate everything *just until you don't see any streaks* but avoid over-mixing.
Spoon the fluffy batter into the cupcake liners only halfway (this is imperative! Only halfway!). Bang the tray hard on the counter to release any air pockets. Bake on the middle rack until a toothpick inserted in the center comes out clean, 19-21 minutes. Cool completely before frosting.
For frosting, cream butter, powdered sugar and extracts together over low speed for about 1 minute. Add the milk to form a thick, smooth frosting. Spread with an offset spatula or pipe over cupcakes just before serving.
Video
Notes
Buttermilk: To make your own buttermilk, measure 1 tablespoon apple cider vinegar or lemon juice into a liquid measuring cup and fill to the 1 cup line with whole milk (2% works also). Garnishes: To accentuate the almond extract, you could garnish with toasted, slivered almonds for a bit of crunch. You could also garnish with crumbled espresso beans.