配列のインデックス付きのmap

ary=[[12,"aa"],[34,"bb"],[56,"cc"]]

というのがあって、

[{12=>"aa"}, {34=>"bb"}, {56=>"cc"}]

こんな配列を取り出したいというときは

ary.map{|v|{v[0]=>v[1]}}

でできるのですが、これに配列のインデックスを
取り込みたいときはちょっと困ります。
具体的には

[{0=>[12, "aa"]}, {1=>[34, "bb"]}, {2=>[56, "cc"]}]

を取り出したいというときです。

res=[]
[[12,"aa"],[34,"bb"],[56,"cc"]].each_with_index{|v,i|res<<{i=>[v[0],v[1]]}}
p res

こんな長ったらしいコードを書く必要があるのですが、
うーむ。めんどくさい。

map_with_index{|v,i|{i=>[v[0],v[1]]}}

とか

map{|v,i|{i=>[v[0],v[1]]}}

とかってやりたい。