{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "voiceover-pack-male-6",
  "type": "registry:block",
  "title": "Voiceover Pack Male 6",
  "author": "Kenney <https://kenney.nl>",
  "description": "A male voiceover stating \"six\", suitable for tracking multiple items, sequential steps, or game levels.",
  "files": [
    {
      "path": "registry/soundcn/sounds/voiceover-pack-male-6/voiceover-pack-male-6.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const voiceoverPackMale6Sound: SoundAsset = {\n  name: \"voiceover-pack-male-6\",\n  dataUri: \"data:audio/mpeg;base64,SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYyLjMuMTAwAAAAAAAAAAAAAAD/+1DAAAAAAAAAAAAAAAAAAAAAAABJbmZvAAAADwAAAB8AABoeAA8PDxcXFx8fHycnJy8vLy83Nzc/Pz9HR0dPT09PV1dXX19fZ2dnb29vd3d3d39/f4eHh4+Pj5eXl5efn5+np6evr6+3t7e/v7+/x8fHz8/P19fX39/f3+fn5+/v7/f39////wAAAABMYXZjNjIuMTEAAAAAAAAAAAAAAAAkBD4AAAAAAAAaHuajQAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//tQxAAACbmJD+AEqUmLGGXwkwowAAAIYFBxGwAABjmPr/3/n//5znP//nOc7oQjaE+QhCN//IhCfOc5zv2/nEA4HCE85znOc5z/qc5CEIQQDhCP/9TnOcTDgCBwUY4mHgAguRS1kgACyNuZGAM+gjOCCCAbAGfQIEaMjC5NPSCD331iAACE72CBBDPBBB9i7i9h7vYQJp+2dMzCEREHhZSE/oIIYRCCCADvKBAaUWcY9ZcgUDEPg+Uc8EDm7iT6gGOOfKklkZ3+S/22zx8iTv/7UsQFA8q1EUYAjNaJd6vpwBSLKEiIT+aIl03NKyUDMOKECImuaonsk7ZOCafBx+XvsmxkgMLjH2AQAEMJp5dn22X7iMcmxCNh7vfrJwDA8AeI4yGO8AECOh+Bn/nb/H///zyfXNBMA5RmOcfGSGVroEaO8k20QMLwgzT9TDbBbJ8PROoxwgc84p6QPLtpJMFp9U/wbhReTB2cjP918SO5EUVFVwX///pr93vKRrqEc8IB8IzPUPUj/QbMN9iF79u9zJiMyQACykOweHp4Lh8b//tSxAkADDD/YeYkaoF4lG288w2aqcuCI8LhgRlXvdNYS4BVanGyDZfp8b8i5paxnTI6Bt0/OZsuppUgR7kcU1bREzrhzm7BBpnrm90y3BvObkhhxuQB1QHsJ2tlAYJ5BJfL0qmJh4dmZY0SASlwLWa64TC0f5eG1CFo7IKKYUwvAjIBgPd7ypwsJhYi0p9FSL5+QdzpedJjfFMp7ld0xCKDhlDkwrVtTa54CSIVAF52UfNpyDnFdMMGVLLvz6SapJlSmaiHiGVI0SQSrm2WJHD/+1LEBwAK3J1z56RpEZcQ7rz0oPJ0j1nurUOSJnAQJRoUCyOoUcYe+e5+L8WDIz56vLP8t/+E7xMPIqhNAsCQTg08QgmeeOPoqaoYj7oYqlyKhn1CUrsUvn8aOc/VNVcTDsyxtAEkrlRogWUyzuFdR7IdCYyJgDkoHASSrECjlXWV04/zUjGunxM271uMs1hKIQbzGykOlEJFDkVErQE5D0DkMXa+8HCQZIpKDATFhC9wqsUDwhFG33NsQNmWUIdRNk9ViZqYd2VLEQQSm8LAnv/7UsQGgAvJb3nmFFJRdSUuvMGKaqA/JIZHIPlUywqRLh0UtQ+izEfH5KCAJeRmQOGO3UiqKOdbYhEcqMnfuze4ZSpKvI1P/+z8hFZnRmVA5byOe6ktf70Mq36yr23RvPVgQxLo62KmYh3VUjAAAJZRHAdC4YqwsC4iAwKlFhLCUtKLrEsHtL7kf2CRC/pAJt5/9tv/Za5H2rC1rNfzQd0mu2Tt7z2pSzLUtuiq++jdqUqh6CMkDCj0BBicQzPWtasUabWJiHh3VE5AAIVy6paA//tSxAaAC8ULc8ekbJF0E6+88w3idEM4kRx/It6Qc8xhG0xFtZNhig6G5nrj/lGhPnk+ig6plxzNyhUWjnuwmaOb3pS+Zld1P/hf/02KVafvzfUzIwYRWJw9qmHuLhZYIYcm1973zNVMTDKthJBBOGNIlvKAUQsiJUBcGVH2JAh6pUTs+SjpZTKSN3MunEJv8Zrob/577lYfRSlESu5I/CMSIAnXjxP5HMraFkHUi0PqShfqcJGshkMoIA+biZuhDVO2qoqqqYh1axEoEr5O9HT/+1LEBoALnV+B54xR0WKXcLz2DVqHGnyTKguDgfqHvllDkE8plibMCfEh2Wd1UihQwhv+VgMnz+ztU17XIvbptdRjWFvEUZTZT//Wzb7OrqtG+5lbkTOmU/+Xc8l/uPqCROfk1Bl1UzDu1jRRJX4sA4yZrJBUIJCTxTr4oJgsePyfMLTDlTiElkzN+5J7IBGXSKlTTWE7KSafT9nnk/cmsJyOhTWGvrqU4SMWNPyo1YFfYpje5cNbtxORHdiaiqiZh2ZY0QACZDCWD/VJ7QDlMv/7UsQJgAogM3/gvSERUI3vuAeMMs4y/YNpoRX3xQILpzQPAYHE9kMY8MBIJtAAUaFT7jZ8VGYwkoVqT/2BeKBAYtjrpdKlkelwGCG+1qKiUlcYCZmJd2VfkAEd7dtOLt+oXq4SMNmaVMln9BBhRwM2u53KzvHr6V0LcOqjVBsg1hk+A3ntwnIY5C9gt1CwpgmCC0DSigaRW4XfWNawhR2CNi3htTKF1Ym5qIh2WNEAAGQNCsPw1nBFMJEjDs+SQnRTfOqnpmEIGmRxy8FnSsz///tSxBSACnCJf+CwYdFIBnB89gyqTKBF+56s6KYnXISY6KNU0BzmKfc5AOtIIYJ2vGH3JrNs5hdfqFJOYYwsupm6qYdmsRJAKZh+Aa4A/JkrQTKgdjwwdUPRHJZTES7foLMMFxQiAllxdQDE/DK9j7REaW0Akw6OFXE1NPn+r/F1Xq2aevEaMgUeiHXrgq4QOvWnmpeHdUraJIJSeV62UccPtBTwYxIA2C4bAcJCnUCdPCgVDvTfvxMgq0y/0Sy+rt7J9LTsOplamtO/ErZCFNf/+1LEH4AKLK2D7CRnUUqLb32ElaKERLZUfWK1XU/92yxNr6Ht5HIwqukMxodRIAAVZus2qgB+UoJWOjaftuqvS+bv1CcKif8jnsNzfTP5wLhk3L0KQAwQaJA8WJVNIrcskEj1ZJmGBw8W0Xmf+yr06trO/yQbPr3Ub/coXEdGSgEAAoyR6oo5hptJYJjuwXFDgUYxMrnuIGwmc6OeVL6kAwDkzeT1QO++yHiPHB0iCrq2Ems27mKWks9rW3nbzOMqfWyl3+u6ynWCk9IRGQDBSv/7UsQrgAnIX3PnpEtBTAyufPYdmGxDwe4wnNPBhjRSgqSXFkgPtQgmWyyUexaFGdAa7ioN8/kHRx0bvdNUUKAQ0WcVfDihJFutlO4xdScaKuAVPsvlmf7gjECBB6UEldkIOzoUQAIAu5RHi5CGEtiHmcJBHpxKU2HvXZvLHsFhHsoDwJYp4/fmHL3nuXkPoxRWnn5G/QqO1sINW+alv/bnmKCwMuKyH+UWrn+yDoTLCGUNzdWIVQDCTdJSI9kgQv78phG6OB+hxKyxTAhENyUI//tSxDiACiihceesTwFDjm+8+AmaDybIgxPCEpD9RLLP24RNG8VCvxckkxLlwy4FhUObSxv/LPFxP2f/19bpwuAyKnSKR6rjBgdVEhAAACdPSPxXGXlowHTmV+SGLZ6W6F8HYzW5RlNvdKvRHHMCOyFRVFKXZA//MUC5UEDrAdCdAB2Zh/5cuhbv2zRutvtdNEP1X7LEwB1URAAEBJ/36TKbNlIlcK+ChV4a4LDFpAWt+QiHKyjZGNDCS63MrimZQXBXV8QiyzIOCigpDUqjAV7/+1LERQAJuGdv5jzJATWMrjzxIkDelyt+3X4o99vqdqf75AUfANXzMiaWEAACBUnhpzI0TW8QtxqUMwthjMJhiNG03sMJHcQFWLV717w8UiisGvyCAzBh+R9CCgkNucKBpaRoD65//ZWaTWEm48aQcr1Kbh337js8r0UJdWICADBLnJUI7IPQXptXhui0rpBPcxiekFcZSOaRH1BsExp01cd26IF8DguDgaEwMa3+yGx7wHBtrTQWb1Uf1qqrlH9UVoIepq6eJHLYUHVLk1BEV//7UsRVAApQY3HnmG7BTgpufPSN0DAkIAduT/JcjC5tiWLEwHy5q8hAgR1ItDNthyJvyOp7hYHSZki7JlXQ2JkL+U7/6NOmIUVCCgKGD608QPTMfvff1cjLvYQ9YVvfZW9dj3AjysBqbGAgBAx3RFu0fgWlipYE30TYYDcCAJY5ZARkxUJcsIu/nE5ZLaHVSd97nUZRX+HfeVPnTCpZQ9BglzwUEYPBMn9vFKD76EgZQtd3btrZ3fSq91NFZzAgBCk7oxojvQDWEnOA5jIZsRLI//tSxGAACnyXf8eMUvFNDO59hJkgwvEQty3lZEA+z10FvIYRRep/0jIM3UabtDooTFg6aHkBgPiRIHvWPHWtI+v99FI9QnWXEf1VOdQiUq5xBTNCAAAwU3XowhwoDmTxJFYFCyvL6Q6NR+Zbq0tq6PUA7lzeNmk2Z01oVywbHV+oVEW0AGCAVMlRrguB4sifUNYdHpxX4R/L9BdwQvqqaouIBZaXilXoYIVnQAAdCbeYQTYZSlFfM9gDrH4Y5NFkAhkJoCElIpGesFnD2d0K4ZT/+1LEagAKUGV156RnQVqMrfz2GOjB1EEXdhbiyI37mMN9e7tV6I5BIhTOdK5GPZ0aHapVqmd/3Oc3k2xCmNe9lQcJBxoShKPObQS/sEA0ht/RWqDVEJoLCUIKCQYBeLFpEH2BfEcnjiYOmd52p5atArBUZXVZolv8rKHP+vVtTK1k3VZK2q6rQ5CIrojCEqQjv6Z6/8y3/+j1tqR/vBuOKcAspuow9ijrQq57dSAEqSWtlIznvHICVJwHsX5nVVU9Ir7ttLQr2eH6r0r3UESmXf/7UsRzAAvEz3HnpEkBgi/t9MMKSA8tR6Gb3JUqF7Of/MALo3/Y2isVqkQqo0uimFxK0BGxUrYQbK93M/VexjDLr3h4ImLt4gZPfV67kAAxAOWx9LQdCfQo9wmhHlQLF7BbNAIj2u9xy1hOOGDeK7W1ZubMvhFRT3jY+/kfqIhMHDj/1aiuRus6PNct7rJYrNumi9I/esrLt/037Y2zuh0dFNapEzIKnKKSmLVaqmaBNGZAABJlObAWE4pBTQJDsMUM04hwj8vPy25JxBVwyEhi//tSxHGAC4TJbaeYssGMq+109hUwujECHgtZFLfQEOGQUR+nraN/0zJemRiOr3RzOYgxUa3O6kb9SlQtUV/3//62dhQVc9NbwmwqoUS5tup5jyZAAloAqdcl0bIBdDIHCbRvnm2OdIDGfylq/ZmDrp0UolVkDhgnNqDp1QdvoUShpfJRdDMBHf/qxfs5XaZbUdLVRWqbrf/mYljWbs6//+q/dNv9Nb0UaiM31Yoid4dAAHWNy64TABBW8AsTDIjilgRniA6ScXytgMPrcaCjW0b/+1LEb4ALwTtt5hhSQWyuLPT0ikimhKFzw9/EQwNR3EbMXN8v/+rdkMjnQSVil0bMPetNv/WZCpRH9/Xfmys//zdPWphj3ONRg5VrctiILuaSbYAiTJV5KS6EmodhVGXSo4QrGJB5ZuM/EMSCrdHa3epD//yeAkTEnp7uDj0f+6SRx/xTJMfSLqBxQUOhtUj6wEndkUkgI/URU+KcmAlLTGB4XpW2XbaEtyskFlkSEmx5H8nzpKQREpxGhWLigNF5PCuVKpRVzQqBFuJ9HcBM+v/7UsRwgAtdaW3mGLQBZpDtdPYY2jsgp5vzf/mUn6UupVpK52FFKqXLKb/6O3Xr2m6P/Np+36DTGVSo6Choob4L0lIZqpUgV/zagKoZ5e1Ciy8otAnk9Q5Foai2h++WfdI/lnmrR24qYZ3i6ec0CJGaQMLhAOligsl2kaepNEQ8kqVQCsKvV9SC27iPUDTrACelwayqtrsudkbms1lslbiDQCCzLjpzVOQgmdxhh6l7E7F0u3A7SGnmyZNk2IIkCIiThEj5FyfFzCtwIAwi8NEo//tSxHQACxFta6ekRzlMi6k+nmAAlculcuG4s0SonRy0DpNrTTkQQLhqQ8ZQUo6aZmpGQRCaSBjwaLIGbrTTM0ptZaZu6CZugYFsoGiklfUmplIGhopAzL6bpGqL//voIMzoaDooLRJY4ZmqX////5oYn31jdSJABNZAiGXjAqkJUXn1C03DxaYrTtpwzNIPuLWGso0g1lU/OUxlxV8LIyprs4Z03Xtkb2kOeNqPF4EA+lRkSxvH4lmkmCB3PNW0S4fHoGhqw3tXp5171msetWf/+1LEfAATUYNluYgQEgCsa3eYsAAp7mfMQ/d7oio4fue+H3VPdG5tQ6GcREzPT+JN1zhkeP/ghZdlaFZBJRxAAOIMIVUAFgcrgqJj6wpaJD7FShD5kJy8/KM4e1LJILrMKpIHI210baPNMiuRKFyyACxWQAo6yAwIxxdIMIHRRGNIHOmWpp+gAAMm6nueZJ8S7vCiJUiFXOJTIvv2QhJGkv17oT6nQkhFF4VI+IlA/v/O8szwzIJSyAIoBEFQneHk7EQtvIJfdNrIJswHgEudQP/7UsRMgA89aWnkjF6JvpvuOMGl4rxsjkP8nV2Dw+XI0wuicDYmKLExATqiRGsBGP5KVKGYboSnIk8ddqDctV+9ZN7TfT+sd7D+xQjJkFkVEiR1zrSWxTAkvSSmWplCowsbXhjepZupiIhlSMkAAo3ihIEQMSUywdPT4STZcIgGUahKJbLrCa/pKww6FTfFj8jmXC/9WRr+axtUEr1B0TSoBPtanCC50Qh5FNYetSuztxdQ85NkSuncK0C5IvRN3VzEOq2IkglVVqwcAxDfZAjo//tSxDWACwSHe+ewZZFNlW/89g0a3yRDyZuAtAwWC9WGA7LGqA3YlBuMh8amW359Orf6WUKs6fe55cRjyHhcKhOfO3OT+KSjGD3JjtvYFN1/UfjqXsWJmYl3ZUjIAAKXkKSrMLmiirSqLZE8WN80oFjaG4VaZntKol77HEV385HdH6Srh6rYXFpUlUtRdLh7tTkCj1GtimHFn0JaiZyI91cNDDt/GF7Foc2NVM3UREMqxokglicnFYLgbCMWihYbOFkMSdx4jnpydIaKENNTE6n/+1LEPYAKtG9555hO0VkNb7zEjOJ3qdEl2PQYQWyQlMNOjCB1ZJKg6VEx0y8NvRMatenMe3V5VDseK6xloleIgwsGQKeWmJmIl3RIyCAClQAwywlEkA5wWCcFFwLCUkPW0tUvrVEcighYkp4mYP9DSGfSMRCBOVGh0aIjgq2xfY3rR0W1uooRoZQLl3xGWAF/SKOUL8dEzExDsqVAAABEEJ3wkOgpigrEgdFagcAqJxWXJNZpBdn++Ws+jXvhe0eWx6QcHsABQEwWDLFCgZEL1v/7UsRFgAoEiXnmBFFRUAjuvMewQpbKONtJiKzzhhfvFm7H/u6lP4cuZDZKxItVapmoeWRaiAACoIWhwSQYCQSzsMCI2REKNCGhFlKuSuWseO9MTszc+mlKTwJh4pWo89xkFwmlLWC2rIvyr8Ut9zsjUqmLpLqtWs2d2hrdeq1UzFTMQzNWSCSkXATODs8DsQwSEYR6l6xjdQVFENLrmbfr/ZSarUVnM2RU/W2aln8iUEKunOXJkRQgzJVJWVUjGeG0WxMSljqxJDRdY18A3YGf//tSxFEAChRLdeExINFIkK88wI7KrYmJmYhFaskkFPSUXiSgEkwHAlAiYEB05SxKYz22jr200K49I6zUPlwo8/+R6fTI59NJsRRVuJC6IwVIztrNv00s77k3bUV1s3LvgJ53dSK6O+q3c2KrRAAhQHzlKPQUBACCQ8Fwq2wfDx4lV2mCBGyxeIZ9oIwT8ONqvzOnQs/zicpULeYUDaVBVZ5CqXAqYGpSl02v7u3qQeXFWFcbGRRrHW2qvZnMu0deAFcaSaILUInkkdQ9iK1/4PT/+1LEXYAKCJt35iRpkU8RLbzEjHi/88YC4vKePrRCzLzL8hhRjJwCBOo6Gi5hQdfeHnEXESh4YaCWHWxYtiCvoDTLYi5FEjZXvGUNehYBVO1NVtq6WCDbWcikYXirQn4Vp+q0YSGqFmspPCjMNB2ui9RMw6VbN6tCoaqDiXnXQ4wYWfRPFUlnlpUJNo+yoOHWxxndV5nYd9t8YVsbWou666g3VsgIp1KPIjDkRwrHQ+JZXGcRNwnP8QsIBIoEJaV1R42ctT3/ahl2/1pyRmLykv/7UsRpgAo0bWPGDE7BOA7ruPEOIGeeaAjephF7mLF9aR+hikIQxhWLbncre1ziNfO0EUDQR3aod0NQgAFCuE6GK2+HI6xbFrJVsmOoVUBjL8DCmAmg9gYGJq//NSVf6uDY+GrbAhXw84FI8DWRUVDW8YDJ14Kw6VCTzsNHkwq6uJfPJF3f0wYyU2jkRhWTyeYQrNcXiEzMuGFf6qv+olVVmONxgp7ChWq8PIMKUAgUBHqj0qdBWCoiBmoOxEHRK5YKiKDTj06TLIxEDWNT9Fbt//tSxHeAClCpVeYIb0FJlOg8Bgw4U6JQkNllljkrLLKhmrWWORHZZcz5ZfJWssqGytQQMI4gSGChgYIOjmssss///VrLKhmUssv//5Kyyx0NlYGCBoGIiVURdiqpTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+1LEgwAJkJ8hYIRpQRUjj0QADBFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ==\",\n  duration: 0.772,\n  format: \"mp3\",\n  license: \"CC0\",\n  author: \"Kenney\",\n};\n",
      "type": "registry:lib"
    },
    {
      "path": "registry/soundcn/lib/sound-types.ts",
      "content": "export interface SoundAsset {\r\n  /** Unique identifier for the sound */\r\n  name: string;\r\n  /** Base64-encoded data URI (data:audio/mpeg;base64,...) */\r\n  dataUri: string;\r\n  /** Duration in seconds */\r\n  duration: number;\r\n  /** Audio format */\r\n  format: \"mp3\" | \"wav\" | \"ogg\";\r\n  /** License identifier */\r\n  license: \"CC0\" | \"OGA-BY\" | \"MIT\";\r\n  /** Original author/creator */\r\n  author: string;\r\n}\r\n\r\nexport interface UseSoundOptions {\r\n  /** Volume level from 0 to 1. Default: 1 */\r\n  volume?: number;\r\n  /** Playback speed multiplier. Default: 1 */\r\n  playbackRate?: number;\r\n  /** If true, calling play() stops current playback first. Default: false */\r\n  interrupt?: boolean;\r\n  /** If false, play() does nothing. Useful for user preferences. Default: true */\r\n  soundEnabled?: boolean;\r\n  /** Called when playback starts */\r\n  onPlay?: () => void;\r\n  /** Called when playback ends naturally */\r\n  onEnd?: () => void;\r\n  /** Called when pause() is called */\r\n  onPause?: () => void;\r\n  /** Called when stop() is called */\r\n  onStop?: () => void;\r\n}\r\n\r\nexport type PlayFunction = (overrides?: {\r\n  volume?: number;\r\n  playbackRate?: number;\r\n}) => void;\r\n\r\nexport interface SoundControls {\r\n  stop: () => void;\r\n  pause: () => void;\r\n  isPlaying: boolean;\r\n  duration: number | null;\r\n  sound: SoundAsset;\r\n}\r\n\r\nexport type UseSoundReturn = readonly [PlayFunction, SoundControls];\r\n",
      "type": "registry:lib"
    },
    {
      "path": "registry/soundcn/lib/sound-engine.ts",
      "content": "let audioContext: AudioContext | null = null;\nconst bufferCache = new Map<string, AudioBuffer>();\n\nexport function getAudioContext(): AudioContext {\n  if (!audioContext) {\n    audioContext = new AudioContext();\n  }\n  return audioContext;\n}\n\nexport async function decodeAudioData(dataUri: string): Promise<AudioBuffer> {\n  const cached = bufferCache.get(dataUri);\n  if (cached) return cached;\n\n  const ctx = getAudioContext();\n  const base64 = dataUri.split(\",\")[1];\n  const binaryString = atob(base64);\n  const bytes = new Uint8Array(binaryString.length);\n  for (let i = 0; i < binaryString.length; i++) {\n    bytes[i] = binaryString.charCodeAt(i);\n  }\n\n  const audioBuffer = await ctx.decodeAudioData(bytes.buffer.slice(0));\n  bufferCache.set(dataUri, audioBuffer);\n  return audioBuffer;\n}\n\nexport interface PlaySoundOptions {\n  volume?: number;\n  playbackRate?: number;\n  onEnd?: () => void;\n}\n\nexport interface SoundPlayback {\n  stop: () => void;\n}\n\nexport async function playSound(\n  dataUri: string,\n  options: PlaySoundOptions = {}\n): Promise<SoundPlayback> {\n  const { volume = 1, playbackRate = 1, onEnd } = options;\n  const ctx = getAudioContext();\n  if (ctx.state === \"suspended\") {\n    await ctx.resume();\n  }\n\n  const buffer = await decodeAudioData(dataUri);\n  const source = ctx.createBufferSource();\n  const gain = ctx.createGain();\n\n  source.buffer = buffer;\n  source.playbackRate.value = playbackRate;\n  gain.gain.value = volume;\n\n  source.connect(gain);\n  gain.connect(ctx.destination);\n\n  source.onended = () => {\n    onEnd?.();\n  };\n\n  source.start(0);\n\n  return {\n    stop: () => {\n      try {\n        source.stop();\n      } catch {\n        // No-op if already stopped.\n      }\n    },\n  };\n}\n",
      "type": "registry:lib"
    }
  ],
  "meta": {
    "duration": 0.772,
    "format": "mp3",
    "sizeKb": 7,
    "license": "CC0",
    "tags": [
      "voiceover",
      "pack",
      "male",
      "6"
    ],
    "keywords": [
      "voice",
      "male",
      "number",
      "six",
      "sequence",
      "instructional",
      "game",
      "level",
      "selection",
      "audio",
      "confirmation",
      "numeric",
      "clear",
      "direct",
      "informative",
      "short",
      "precise",
      "neutral",
      "sequential",
      "prompt"
    ]
  },
  "categories": [
    "voiceover"
  ]
}