#[05AB1E](https://github.com/Adriandmen/05AB1E/wiki/Commands) (legacy), <s>68</s> <s>65</s> <s>60</s> 59 [bytes](https://github.com/Adriandmen/05AB1E/wiki/Codepage)

    .•5Ç¿ÆΓ•2ô.•1ÒKá ¸ΓìŸÆt`ô_zTºγ„KRI‰ι놽òι•4ô«I¬©¡®ìkh2ôJHçJ

Input is in lowercase.

-3 bytes implicitly thanks to *@Emigna* changing `'b¡εg>}s£` to `'b©¡®ì`.

[Try it online](https://tio.run/##fVC9CsIwEH4Vn0Cs2HfwZxN3Tajg4ZDFLk6ddLe7qIuIRUQ7qCDCHa55iL5ITZv@UuyQSy7fz31Jy2TcmIZhM3AOJq3xQyvpqnOb/OjKoM2A9g18SJe874NWiwn54@UIX/IeONvBsBc4V/mkc@Ds8E03@VSiDvl47qGHJ9zjhbz5TLn1u3TshyEHCzhTVXChFsQLuKpqtzmzUsyOe1C9xjQvx7ReJCy75AJWdYLeWYxrVa6LsP@ZIJnHCsziPIhTi4wnssx6RqpI38Yq6aJEIvMrv7TuZ@wCAwr5Up/6G/YD) or [verify all test cases](https://tio.run/##jVI9SwNBEO3zKyS1BBO8vyAm6UKw1VkiOFhs4zZWV8Xe9GJsRHKI6BWJIMIOtvcj7o@cex@zH7kYLHbndu7te28eexSB6F8W0Um36OXxU0R3@pvm2cJ8DygtW326H9PyQK@zBSU/a5rfXFB6fjvVn9lHHj@MJ8M8fss2tMrjR/1F79nGXDqmVK@GOtEveqlfKbm@MmyjU3oeFd3e2WEhcIYCzMKZNAuqKpuzq0pIAZ0G4IOVUNVuuh3b2sWlLFNdwaLMzhSeGopyrxfLALv4r@XyVNM732BvbFtgTCVfIr1h2ko8rCxNWQbHzrnwv9CbX6EZmMd0ETht5elLr6pK0cUSQNCOr/Yaw5YxKVhUBSzbJrAVRvAkbIy7PaENAIPAGYHNcOi9mjAoCGaDlrvwEcjWG/srGeUh0PPHPPs78As).

<s>Also, can definitely be golfed with something smarter than the huge compressed strings. Will take another look later on.</s> [Shorter answer already provided by *@Emigna*](https://codegolf.stackexchange.com/a/171401/52210), so make sure to upvote him!

**Explanation:**

    .•5Ç¿ÆΓ•      # Compressed string "bibabobu"
            2ô    # Split in parts of 2
                  #  → ["bi","ba","bo","bu"]
    .•1ÒKá ¸ΓìŸÆt`ô_zTºγ„KRI‰ι놽òι•
                  # Compressed string "bidibidabidobidubadibadabadobadubodibodabodobodu"
            4ô    # Split in parts of 4
                  #  → ["bidi","bida","bido","bidu","badi","bada","bado","badu","bodi","boda","bodo","bodu"]
    «             # Merge both lists together
                  #  → ["bi","ba","bo","bu","bidi","bida","bido","bidu","badi","bada","bado","badu","bodi","boda","bodo","bodu"]
    I¬©¡          # Take the input and split on the head (always 'b')
                  #  i.e. "bidibadibidobidabidobodibidobodibidoboduboba"
                  #   → ["idi","adi","ido","ida","ido","odi","ido","odi","ido","odu","o","a"]
        ®ì        # And prepend a 'b' to each item again
                  #  i.e. ["idi","adi","ido","ida","ido","odi","ido","odi","ido","odu","o","a"] 
                  #   → ["bidi","badi","bido","bida","bido","bodi","bido","bodi","bido","bodu","bo","ba"]
    k             # Map each item to the index of the first list
                  #   i.e. ["bidi","badi","bido","bida","bido","bodi","bido","bodi","bido","bodu","bo","ba"]
                  #    → [4,8,6,5,6,12,6,12,6,15,2,1]
     h            # Convert everything to hexadecimal
                  #  i.e. [4,8,6,5,6,12,6,12,6,15,2,1]
                  #   → ["4","8","6","5","6","C","6","C","6","F","2","1"]
      2ôJ         # Split it in parts of 2 and join them together
                  #  i.e. ["4","8","6","5","6","C","6","C","6","F","2","1"]
                  #   → ["48","65","6C","6C","6F","21"]
         H        # Convert that from hexadecimal to an integer
                  #  i.e. ["48","65","6C","6C","6F","21"] → [72,101,108,108,111,33]
          ç       # And take its ASCII value
                  #  i.e. [72,101,108,108,111,33] → ["H","e","l","l","o","!"]
           J      # Then join everything together (and output implicitly)
                  #  i.e. ["H","e","l","l","o","!"] → "Hello!"