支付宝收款语音播报是如何实现的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Eugene1024
V2EX    程序员

支付宝收款语音播报是如何实现的?

  •  
  •   Eugene1024 2018-12-19 14:58:02 +08:00 13842 次点击
    这是一个创建于 2496 天前的主题,其中的信息可能已经有所发展或是发生改变。

    职业病,每次看到一些功能都会想后端是如何实现的,但感觉自己好像实现不了这个功能。

    商家启了语音播报后,每次收款不管金额是多少,都会语音提醒,这个语音是实时合成的吗?还是通过其他方式实现的

    57 条回复    2019-01-03 09:42:40 +08:00
    leavic
        1
    leavic  
       2018-12-19 15:00:28 +08:00
    计算器的语音是怎么做的?
    invoke
        2
    invoke  
       2018-12-19 15:02:25 +08:00
    。。。这
    播放语音 A 支付宝收款
    播放函数 B voice(99) 功能是把传入的数字用语音念出来
    播放语音 C 元

    这不复杂吧
    freshmanc
        3
    freshmanc  
       2018-12-19 15:03:06 +08:00
    tts
    IsA26hN4DcQDS7Z9
        4
    IsA26hN4DcQDS7Z9  
       2018-12-19 15:04:08 +08:00
    有没有一种软件。。

    手机丢了之后。。

    可以不停的播放:我的手机丢了,我的手机号码是:xxxxxxxx
    adyyq
        5
    adyyq  
       2018-12-19 15:04:13 +08:00 via Android
    原音是台湾一个美女录的
    rizon
        6
    rizon  
       2018-12-19 15:06:22 +08:00
    楼主可能是问声音哪来的吧。。。就是把 1-9 和点 提前录个音啊。。。
    录音的妹子还是个挺可爱的妹纸哈。可以搜到的
    xbigfat
        7
    xbigfat  
       2018-1-19 15:06:26 +08:00
    我也有类似的疑问是,前方的客户端是如何得知这个事件的。
    以 Android 为例子:可能是支付宝软件开个 Service 监控余额变动,一旦入账了就自动发送广播,播放语音,但是这样的话,不会被杀掉吗?如果确保稳定性呢?后续有大神能不能 @我解答一下疑惑。
    还有就是那种语音盒子,硬件盒子怎么得到通知的,具体工作原理是啥。。
    cjpjxjx
        8
    cjpjxjx  
       2018-12-19 15:06:26 +08:00 via iPhone   3
    解压支付宝的安装包,你就能发现里面有这些语音的音频文件,从零到十,从百到亿,把这些音频文件按特定顺序播放就行了,让我惊讶的是居然有亿???
    https://img.cencs.com/images/2018/12/19/M0O.png
    tanranran
        9
    tanranran  
       2018-12-19 15:08:08 +08:00
    @cjpjxjx #8 #8 据说是一个台湾的妹子(展妍)配的音
    580a388da131
        10
    580a388da131  
       2018-12-19 15:08:22 +08:00 via iPhone
    不需要合成啊
    分析出千百元角分
    按顺序播报就是了
    blue0125
        11
    blue0125  
       2018-12-19 15:09:30 +08:00
    不是每个支付宝软件里面都有个妹子么[手动斜眼]
    RobinzzZ
        12
    RobinzzZ  
       2018-12-19 15:09:35 +08:00
    语音之前是有停顿的不可能穷举数字,只有合成 XX +XXX +XXX 然后发出来~
    leavic
        13
    leavic  
       2018-12-19 15:11:19 +08:00
    @xbigfat 所以,支付宝有未开放的 API 用于监控余额,但我估计一般人是拿不到的,否则都可以自己 DIY 收款系统了。
    580a388da131
        14
    580a388da131  
       2018-12-19 15:11:20 +08:00 via iPhone
    @xbigfat 被杀掉就报不了了,不少人都在问怎么防止被杀。
    Eugene1024
        15
    Eugene1024  
    OP
       2018-12-19 15:14:07 +08:00
    @leavic 很受启发,计算器是单个数字,支付宝多了“位”的读音,
    @invoke 一时没想明白
    @580a388da131 用户端听到的是一条语音,感觉像是合成的,开发端处理就是你说的这样
    @rizon 明白了
    Vegetable
        16
    Vegetable  
       2018-12-19 15:18:15 +08:00
    @xbigfat 想多了吧,这可比 IM 简单多了,根本不需要主动监控,被动接收广播就行了啊.微信消息可不是轮询来的.
    NotNil1
        17
    NotNil1  
       2018-12-19 15:26:44 +08:00
    @leavic @xbigfat 一般都是主动推送
    vjnjc
        18
    vjnjc  
       2018-12-19 15:31:03 +08:00
    @cjpjxjx 查了一下居然是阿里的交互设计师。。。不是专业的声优
    ansonsiva
        19
    ansonsiva  
       2018-12-19 15:33:48 +08:00 via iPhone
    @cjpjxjx 没看到亿,只有千万吧
    winterx
        20
    winterx  
       2018-12-19 15:34:12 +08:00
    说声音好听的你们出来。。。。我保证不打。。。。
    我觉得声音一点都不好听
    AlphaTr
        21
    AlphaTr  
       2018-12-19 15:34:45 +08:00   14
    之前从支付宝 apk 拿到了语音的资源,做了一个自动合成的,大家可以试试 http://mate.alphatr.com/alipay/voice?num=1200000 数字可以随便改
    Eugene1024
        22
    Eugene1024  
    OP
       2018-12-19 15:35:03 +08:00
    @Raynard 很多厂家都设置了手机丢失模式,大概和你说的这种功能类似,可以播放语音,或则显示消息在自己手机上,这种软件一般是手机厂家做的,但小偷关机后就不行了;小偷会把手机拿到搞手机破解的哪里根据手机情况进行解锁、钓鱼或则更换手机主板,再过一段时间,手机会变成二手的手机到达某个地区用户手里
    Eugene1024
        23
    Eugene1024  
    OP
       2018-12-19 15:45:37 +08:00
    @AlphaTr 很赞,听着感觉真的不错,莫名感觉自己很富有(笑 cry )
    @cjpjxjx 确实如此,我感觉也试着解压了下拿到了语音,准备自己写程序读下这些语音,感谢回答
    heixiaobai
        24
    heixiaobai  
       2018-12-19 16:47:39 +08:00 via Android   4
    @Raynard
    想象一下,你的手机丢了
    然后这个软件很智能地判断自己所在的手机丢了(别问我怎么实现)
    然后自动播放语音:我的手机丢了,手机号是 xxx
    这时候,一个好心的路人路过,然后好心地想把这个手机归还给失主,按照语音打电话,几秒后,路人一脸复杂地看着手上震动的手机
    23333333
    deef
        25
    deef  
       2018-12-19 17:01:03 +08:00
    @winterx 我觉得美团外卖自动接单那个声音超好听....
    wjfz
        26
    wjfz  
       2018-12-19 17:08:35 +08:00
    短信铃声就是这个的飘过。

    文件和铃声分享:
    https://pan.baidu.com/s/1EmUzvicF3lK50hT_vJeZgA
    rizon
        27
    rizon  
       2018-12-19 17:09:26 +08:00
    @AlphaTr #21 哈哈 可以的,最高百亿单位啊?其实可以做到无限大。。千亿 万亿 亿亿 亿亿亿 亿亿亿亿 。。。。
    littleBeats
        28
    littleBeats  
       2018-12-19 17:11:55 +08:00   3
    蚂蚁金服招聘客户端开发

    如有意向,请发简历到邮箱: jiasong.hjs@alibaba-inc.com

    有需要交流的可以加我:

    微信:285660529

    立马安排面试!

    语音播报就在我们大组~
    AV1
        29
    AV1  
       2018-12-19 17:18:51 +08:00 via Android
    @rizon 兆京垓秭穰沟
    AlphaTr
        30
    AlphaTr  
       2018-12-19 17:19:14 +08:00
    @rizon #27 还是贫穷限制了我的想象力,百亿在我这已经是天文数字了。。
    peaceblast
        31
    peaceblast  
       2018-12-19 17:28:38 +08:00
    @littleBeats 你这职业病更恐怖
    sayMore
        32
    sayMore  
       2018-12-19 17:29:47 +08:00
    @AlphaTr #30 闭着眼睛听更舒服些 http://mate.alphatr.com/alipay/voice?num=99999999999,这是我能听到的最多的钱了( ps:前面的地灵灵有点刺耳,能可选去掉就更好了,哈哈哈)
    sayMore
        33
    sayMore  
       2018-12-19 17:30:20 +08:00
    yamedie
        34
    yamedie  
       2018-12-19 17:36:39 +08:00
    欢迎大嘎来玩我的这个 铃声生成器~
    http://uniq.love/future/#/ringtone
    rizon
        35
    rizon  
       2018-12-19 17:43:24 +08:00
    @yamedie #34 聊天室一群 V2EX 观光,,哈哈。。。日常 的背景啊, 我喜欢。。
    这语音库哪来的,丫头的声音很不错啊
    AlphaTr
        36
    AlphaTr  
       2018-12-19 17:45:00 +08:00
    @sayMore http://mate.alphatr.com/alipay/voice?num=99999999999.99 比你多,哈哈;代码中前缀可选: "支付宝到帐", "奖励你", 后缀可选: "元", "元现金", "个支付红包", "兆流量", "张优惠券";掉落声也是可配的,只是没给 http 服务抛接口,调用写死了..
    blackhacker
        37
    blackhacker  
       2018-12-19 17:46:02 +08:00
    @AlphaTr 电梯装逼利器
    yamedie
        38
    yamedie  
       2018-12-19 17:47:03 +08:00
    @rizon 嘿嘿, 整个语音合成服务都使用的是百度 API yuyin.baidu.com
    rizon
        39
    rizon  
       2018-12-19 17:49:04 +08:00 via iPhone
    @yamedie 我擦,,,我看你那个聊天室不错,然后就贴了聊天室的 js 源码想发一下,结果被封了。。。好吓人。。
    rizon
        40
    rizon  
       2018-12-19 17:49:45 +08:00 via iPhone
    @yamedie 贴了一下聊天室的 js 引用代码。。。
    sayMore
        41
    sayMore  
       2018-12-19 17:53:23 +08:00
    @AlphaTr #36 所以你当初开发这个的目的是什么?接口还配置这么活
    yamedie
        42
    yamedie  
       2018-12-19 17:53:25 +08:00
    @rizon 是的 不要尝试不要尝试不要尝试 t/517617#reply45
    AlphaTr
        43
    AlphaTr  
       2018-12-19 17:55:17 +08:00
    @yamedie #34 之前好像在 V2 看到过,然后底下评论说声音和支付宝原生有差别,才萌生了我取支付宝语音合成的想法~
    xiangyuecn
        44
    xiangyuecn  
       2018-12-19 17:56:26 +08:00   3
    我们以前搞的语言播报是花了 50 来块钱请专业录音的妹纸录了 40 来秒的 0-9、单位、符号、固定通知语句,我把整个录音拆成一个个的 mp3 调整优化了一下子,然后让 android 和 ios 一个字符一个字符的播放出来,效果奇佳。。。居然比支付宝的还动听。关于支付宝怎么搞的就不清楚了
    yamedie
        45
    yamedie  
       2018-12-19 17:58:23 +08:00
    @AlphaTr 嗯嗯 我的小作, 追求自由度~ 支付宝到账只是其中一个铃声, 不追求拟真~
    VYSE
        46
    VYSE  
       2018-12-19 18:04:27 +08:00 via Android
    heasy
        47
    heasy  
       2018-12-19 20:39:29 +08:00 via iPhone
    @littleBeats 哈哈哈哈,随手就来
    shew2356
        48
    shew2356  
       2018-12-19 23:11:36 +08:00 via iPhone
    @xiangyuecn 这波操作,可以可以,可以合成岛国的课
    sublime8
        49
    sublime8  
       2018-12-19 23:20:10 +08:00 via iPhone
    声音合成。iOS 走系统通知。
    Phariel
        50
    Phariel  
       2018-12-19 23:26:38 +08:00 via iPhone
    @littleBeats 这帖子真的不是配合你的招聘而演的戏么
    (⊙…⊙)
    zwh2698
        51
    zwh2698  
       2018-12-19 23:35:00 +08:00 via Android
    @580a388da131 一定要合成,不信你问支付保的人,要声音连续。
    ooh
        52
    ooh  
       2018-12-20 00:32:57 +08:00
    play("支付宝到账.amr")
    play("1.amr")
    play("千.amr")
    play("万.amr")
    play("元.amr")

    可以用讯飞语音接口来录需要的音
    theswow
        53
    theswow  
       2018-12-21 13:57:40 +08:00
    @AlphaTr 效果满分
    Eugene1024
        54
    Eugene1024  
    OP
       2019-01-02 10:34:35 +08:00
    @AlphaTr 合成后端是用的啥实现的呢?能简单讲讲么 我顺序读取语音,但感觉程程序上还是有延迟,效果不太好
    AlphaTr
        55
    AlphaTr  
       2019-01-02 16:01:23 +08:00
    @Eugene1024 Go 实现的,简单来说就是把原始多个 Mp3 文件解析出来的数据帧拼接生成新的 Mp3,Mp3 的文件结构我也不是很了解,直接用的库 https://github.com/dmulholland/mp3lib
    Eugene1024
        56
    Eugene1024  
    OP
       2019-01-02 17:28:43 +08:00
    @AlphaTr 拼接出来的语音文件会存储 和删除吗,一直存储的话会占据很多存储空间
    AlphaTr
        57
    AlphaTr  
       2019-01-03 09:42:40 +08:00   1
    @Eugene1024 我的实现还是很简单的,直接生成 bytes 后就返回给 HTTP 了,中间没有产生文件,不会存储落盘
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2592 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 07:59 PVG 15:59 LAX 00:59 JFK 03:59
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86