V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
Kongtou
V2EX  ›  奇思妙想

直接通过说话来写代码能做吗?

  •  
  •   Kongtou · 2018-05-17 21:47:35 +08:00 · 9670 次点击
    这是一个创建于 2141 天前的主题,其中的信息可能已经有所发展或是发生改变。
    不用键盘,直接说话,会不会引发软件工程革命?
    85 条回复    2018-05-21 14:58:52 +08:00
    opengps
        1
    opengps  
       2018-05-17 21:48:57 +08:00 via Android
    问题是,说错了修改的时候废话超级多
    alvin666
        2
    alvin666  
       2018-05-17 21:50:17 +08:00 via Android   ❤️ 1
    就中国程序员的英语水平,一个字母一个字母地读都不一定准确
    fengye1996
        3
    fengye1996  
       2018-05-17 21:51:23 +08:00 via Android   ❤️ 3
    锤粉变相宣传 TNT ?
    lukefan
        4
    lukefan  
       2018-05-17 21:54:34 +08:00   ❤️ 1
    f2f2f
        5
    f2f2f  
       2018-05-17 21:55:24 +08:00   ❤️ 48
    直接通过说话来写代码能做吗?
    > 项目经理不就很早就实现此功能了吗
    whileFalse
        6
    whileFalse  
       2018-05-17 21:56:24 +08:00
    直接通过鼠标写代码能做到吗?
    能啊,但我不觉得会引发革命。
    artvista
        7
    artvista  
       2018-05-17 21:59:49 +08:00 via Android   ❤️ 29
    在别的地方看到的😂
    井号!

    include!

    空格!

    左尖括号!

    iostream!
    不是,,,退格!退格!
    挨欧死菌姆!
    右尖括号!

    换行!
    换行!

    int!
    退格!退格!
    挨~嗯~踢~!

    空格!
    main!
    左圆括号!
    void!
    右圆括号!
    换行!
    左花括号!
    换行!
    两个个空格!
    退格退格!
    四个空格!

    std!
    冒号! 冒号!
    cout!
    退格!
    死诶! 奥特!
    空格!
    左移!
    哈?无法识别?!
    小于!小于!
    空格!
    双引号!
    妈的不要全角的!
    模式!
    半角!
    退格!
    双引号!
    Hello! Whatever! Fuxk my life!
    双引号!
    空格!

    小于!小于!
    std!

    冒号! 冒号!

    end!
    诶藕!
    分号!
    安静!吵到我用 TNT 写代码了!

    我没有叫你识别这句啊!
    退格退格退格....退格!
    换行!
    四个空格!
    return!
    空格!
    零!
    诶,不要中文啊!
    阿拉伯数字零!
    分号!
    换行!

    右花括号!
    编译!
    链接!
    运行!
    error: redefinition of 'productivity'!
    Luckyray
        8
    Luckyray  
       2018-05-17 22:00:50 +08:00 via iPhone   ❤️ 1
    做是能做到,但是效率想赶上键盘,靠语音是白搭了,100 %的识别率也不行。
    woscaizi
        9
    woscaizi  
       2018-05-17 22:02:55 +08:00 via iPhone
    还是用键盘鼠标,利用人工智能,做输入预测,然后写代码时大片大片地输入,到时只把精力放到业务逻辑的编写上。我觉得这样靠谱。
    joouis
        10
    joouis  
       2018-05-17 22:14:36 +08:00 via Android   ❤️ 2
    结对编程啊,一个人说一个人写 XD
    pheyer
        11
    pheyer  
       2018-05-17 22:21:24 +08:00 via iPhone
    不如脑电波写代码
    jdjd
        12
    jdjd  
       2018-05-17 22:28:34 +08:00 via iPhone
    以前刚学 c 的时候,就想能不能做个翻译器,把汉语翻译成 c
    scusjs
        13
    scusjs  
       2018-05-17 22:31:19 +08:00   ❤️ 2
    出处见水印
    nightcat
        14
    nightcat  
       2018-05-17 22:33:15 +08:00
    想起了以前贴吧一个段子,请一个电脑高手帮忙重装系统,结果没系统盘,高手用针在 CD 上戳孔一下午写出了一个系统装上了
    fatedier
        15
    fatedier  
       2018-05-17 22:52:59 +08:00   ❤️ 1
    说出编程意图,程序智能识别后自动编码,感觉不是没有可能,首先需要对足够多的场景去模块化,框架化,减少变数,比如从编程语言层面,实现一个功能尽量只有一种方式实现。
    frienmo
        16
    frienmo  
       2018-05-17 23:02:06 +08:00
    @scusjs 新建 HelloWorld 类,右边就有模板包括 main 的,sout 了解下,括号补全也不难吧
    forte
        17
    forte  
       2018-05-17 23:03:06 +08:00   ❤️ 5
    Bijiabo
        18
    Bijiabo  
       2018-05-17 23:30:27 +08:00
    @f2f2f 我觉得这才是老罗对工作站的定义,哈哈哈
    muziki
        19
    muziki  
       2018-05-17 23:32:59 +08:00
    @scusjs String 写错啦,看来音标会是语音编程的第一 bug 来源
    imn1
        20
    imn1  
       2018-05-18 00:12:05 +08:00
    如果锤子手机的公司,在下一场发布会前,除了服务器外全部换成 TNT 工作站的话,我买两台顶配放在家看它俩自己聊天玩
    FRankie222
        21
    FRankie222  
       2018-05-18 00:20:50 +08:00 via iPhone
    不一定非得是用语音写代码啊,把 IDE 里面那些比较难记住,组合比较繁琐的快捷键做成语音命令不就快多了,比如说全局搜索,类搜索,符号搜索,代码格式化等进行相应的操作,感觉会快一些吧
    Jackeriss
        22
    Jackeriss  
       2018-05-18 00:23:54 +08:00 via iPhone
    说话很累的,比动手指头累多了。
    F1024
        23
    F1024  
       2018-05-18 01:02:12 +08:00
    像霍金轮椅那样控制应该快些
    kxxoling
        24
    kxxoling  
       2018-05-18 01:39:18 +08:00
    早就有了:
    noe132
        25
    noe132  
       2018-05-18 01:55:27 +08:00 via Android
    说着说着怕是自己思路就忘了
    yangqi
        26
    yangqi  
       2018-05-18 02:18:17 +08:00
    @fatedier #15 到那时候大部分码工码农们就下岗了
    0attocs
        27
    0attocs  
       2018-05-18 02:37:22 +08:00 via iPhone
    @fatedier program synthesis。写清楚 specification 也很难。requirement -> specification -> implementation,越高层越难说清楚。无论人插手哪一步,思考是不可避免的,坑也是不可避免的。
    Wicked
        28
    Wicked  
       2018-05-18 07:51:09 +08:00 via iPhone
    其实我支持楼主做的,总要有人为残障人士做点事情
    youngxhui
        29
    youngxhui  
       2018-05-18 08:04:49 +08:00 via Android
    键盘我只要打几个字母就可以自动补全,而语音怕是要全部说完啊,而且标点符号还是个问题,代码一般是英文符号,而输出显示一般会用中文符号。
    HookSafe
        30
    HookSafe  
       2018-05-18 08:08:56 +08:00 via Android
    那遇到那种大型项目 怕是嗓子要哑来说不出话吧 代码真不适合语音输入 效率很慢啊😥
    mseasons
        31
    mseasons  
       2018-05-18 08:09:42 +08:00
    为什么你会觉得用嘴比用手效率高呢?
    MrXiong
        32
    MrXiong  
       2018-05-18 08:25:02 +08:00
    兄弟,说话说多了,嘴遭罪
    justfindu
        33
    justfindu  
       2018-05-18 08:31:21 +08:00   ❤️ 1
    如果要语音编程, 至少需要固定某一些识别语对应固定格式, 比如说
    如果变量 A 等于 1 就变量 B 等于 2 否则等于 3, 直接就是 if(){}else{} 这样是不是就方便了
    thinkif
        34
    thinkif  
       2018-05-18 08:33:43 +08:00   ❤️ 1
    为什么想到的语音输入都是以单词或字母为单位?

    语音输入的未来一定是描述功能和意图,然后 AI 理解之后完成。

    不过到那个时候程序员应该不是一个工作了。所以语音输入写代码在未来就是伪命题了。
    old9
        35
    old9  
       2018-05-18 08:39:48 +08:00
    @thinkif 非常赞同,语音输入写代码在未来就是伪命题。
    guolaopi
        36
    guolaopi  
       2018-05-18 09:19:27 +08:00
    @fengye1996 皮?
    mmrx
        37
    mmrx  
       2018-05-18 09:28:53 +08:00
    我感觉想要比键盘输入效率还高,语音就别想了,脑电波还差不多
    zgx030030
        38
    zgx030030  
       2018-05-18 09:39:39 +08:00
    成千上万行的代码,那时候金嗓子可能会大卖
    harryyyt
        39
    harryyyt  
       2018-05-18 10:03:31 +08:00
    你指的说话是自然语言还是把代码复述一遍?自然语言会有二意,准备率不高,复述代码赶不上打字快吧
    deving
        40
    deving  
       2018-05-18 10:04:55 +08:00
    语言描述太不准确了,可以含糊,可以转弯抹角,可以歧义,可以指桑骂槐,可以。。。怎么可能编写代码?
    fadaixiaohai
        41
    fadaixiaohai  
       2018-05-18 10:07:45 +08:00
    哈哈,普通话不标准的,英语发音不标准的,没办法干活了
    qiayue
        42
    qiayue  
       2018-05-18 10:11:18 +08:00
    就下面四句,现在机器学习深度学习可以做到翻译成代码吧

    获取用户输入昵称
    查询昵称是否存在
    如果存在,则提示用户已存在
    如果不存在,则插入一条新纪录到数据量
    UnPace
        43
    UnPace  
       2018-05-18 10:11:58 +08:00   ❤️ 1
    如果能实现语义控制机器自己写代码才有价值。
    例如,为机器设置好语言后,说:”生成宽度 1000px,左右比例 3:1,左右间隔 20px,左右区块内边距 10px 的网页布局“..
    mcluyu
        44
    mcluyu  
       2018-05-18 10:12:00 +08:00   ❤️ 1
    要语音控制显然不是要像现在的代码方式一样一个字母一个字母的写, 如果真要语音控制,那编程的方式应该要这样:
    1.直接告诉 IDE,我需要一个什么样的功能,IDE 自动去实现底层代码;
    2.告诉 IDE 我需要这个界面什么样, 哪里需要一个按钮,哪里需要一个图片,然后再调整。
    所以未来也许真的是这样的,普通的软件项目根本不再需要会编码的程序员,只需要类似项目经理、产品的人就行,真正的程序员是写这些工具和系统的人。
    mofe
        45
    mofe  
       2018-05-18 10:36:04 +08:00
    @kxxoling 请问一下 V2EX 内嵌视频是如何做到的?
    hellormrfool
        46
    hellormrfool  
       2018-05-18 10:40:36 +08:00
    问下 xx 你手快还是嘴快 (逃
    mineqiqi
        47
    mineqiqi  
       2018-05-18 11:11:11 +08:00
    键盘写代码的效率永远比语音强 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 倍
    rocksolid
        48
    rocksolid  
       2018-05-18 11:23:33 +08:00
    你现在就能试,语音输入不就行了
    madmen
        49
    madmen  
       2018-05-18 11:27:54 +08:00
    请联系小浩浩
    g00001
        50
    g00001  
       2018-05-18 11:33:21 +08:00
    如果有独立办公室就可以了,
    用语音写代码有很多好处,例如可以躺着写代码,

    因为是人工智能了,所以不用一句句写代码了,例如:“给我写一个视频播放器,界面要漂亮”.........“ ,像领导那样悠闲的躺在躺椅上,悠闲的挥挥手,“这个界面不好看,滚回去重新搞一个!”。
    maichael
        51
    maichael  
       2018-05-18 11:49:03 +08:00
    人工智能自己写代码才能引起革命。
    stephen9357
        52
    stephen9357  
       2018-05-18 11:50:22 +08:00
    产品经理:我一直都是这么编程的啊。
    SuperMild
        53
    SuperMild  
       2018-05-18 12:11:06 +08:00   ❤️ 1
    突发奇想,完全语音编程暂时不可行,但如果是语音辅助呢!

    比如当光标停在一个变量名时,喊一句“小写” 或 “大写” 或 “驼峰” 之类的,就自动改变大小写,这不是很方便吗。

    比如编辑过程中喊一句 “下一句” 就自动在句末加分号并跳到下一行。

    比如想在编辑器和控制台之间切换时,喊一句“控制台”就自动跳到控制台。喊一句“侧栏”就跳到侧栏。

    比如喊一句“切换”就弹出已打开文件的编号和完整标题,再说“ 3 ”就跳到第三个文件。

    还有 “句首”、“句末”、“格式化”、“折叠”……等等

    关键是语音口令特别容易记忆,这就是优势啊。

    这就和鼠标手势一样,但比鼠标手势更符合直觉、更容易记忆。

    语音控制电脑也一样,比如截屏,不用快捷键,用语音多方便啊,喊一句“截屏!”就搞定了,符合人本身的反应。

    而且当然可以自定义,比如我会想把最小化窗口定义为 “退下!”,很中二,我知道很多人不喜欢,但总有人喜欢吧。

    而且不是强迫使用,只是辅助。
    newtype0092
        54
    newtype0092  
       2018-05-18 12:12:22 +08:00
    不会引发软件工程革命,但会在残疾人编程领域引起革命,也算是很伟大但革命了~
    wsph123
        55
    wsph123  
       2018-05-18 12:46:55 +08:00
    配合易网页,我感觉也不是不行🤣 http://front.dog/e/
    ZhLTE
        56
    ZhLTE  
       2018-05-18 13:05:46 +08:00
    应该要做到 我需要一个功能 说出功能 自动完成 而不是说一个字打一个字
    MeteorCat
        57
    MeteorCat  
       2018-05-18 13:13:17 +08:00
    int value = 1;
    int Value = 2;
    int vAlue = 3;
    int vaLue = 4;
    int valUe = 5;
    int valuE = 6;
    janxin
        58
    janxin  
       2018-05-18 13:30:41 +08:00
    产品经理:我想要一个表单,能填数据能显示结果,最好效果再炫酷一点
    janxin
        59
    janxin  
       2018-05-18 13:33:04 +08:00
    @ZhLTE 前端可以的
    May725
        60
    May725  
       2018-05-18 13:34:39 +08:00 via iPhone
    都用语音了就不要局限在逐个字符输入上,转而粒度更大的输入。不过细想下这跟语音又有什么关系呢! 在双手不方便的时候,等同于组合快捷键
    402124773
        61
    402124773  
       2018-05-18 13:42:13 +08:00
    Smartisan TNT+易语言
    哈哈。
    这个傻逼 Smartisan 单词我还是谷歌搜索的。
    simpleliang
        62
    simpleliang  
       2018-05-18 13:44:41 +08:00
    https://github.com/liangjingyang/voice_kit
    前段时间脑袋一热, 动手试了试. 自己做了一个. 正如 @SuperMild #53 楼说的那样, 想实现的只是一个辅助工具.

    遇到的问题及思考 ( 还未动手尝试 ) :
    1. 这种工具要用顺, 用来连接 语音识别结果 ( 文本 ) 和 执行的操作 ( 命令 ) 的中间层很重要, 其实就相当于一套适合的 api.
    2. 语音 -> 文本的准确率的问题, 想到一个优化的方法: 因为每个人的口音都不太一样, 在使用工具之前, 给一篇涵盖语素相对比较全面的文章让使用者朗读, 构建一个个人语素对标准语素(比如普通话)的映射关系, 用来辅助提高识别的准确率. 但对语音识别了解不多, 不知道可行性如何.
    3. 我这个项目比较简单粗暴, 语音识别是用的手机某厂的语音识别 sdk 的 Demo 改的 lol, 所以相当于有 3 个端, 云端, app, 电脑. 除了识别准确率之外, 反应速度也不满意, 操作之间需要停顿. 如果真要用的爽, 要把三端合一, 并且 1 中的中间层定义的要简短.
    DOLLOR
        63
    DOLLOR  
       2018-05-18 13:54:35 +08:00
    能引起革命的不是语音,而是脑电波
    hellobanny
        64
    hellobanny  
       2018-05-18 13:58:39 +08:00
    本来只有腰酸手痛,现在还要加上嗓子哑了。
    lanjz
        65
    lanjz  
       2018-05-18 14:06:44 +08:00
    @artvista 哈哈哈哈
    it1989
        66
    it1989  
       2018-05-18 14:48:04 +08:00
    通过意念写代码可否实现?
    认真问!
    gfh110
        67
    gfh110  
       2018-05-18 14:52:03 +08:00
    用易语言的 AST 就可以了。或者 Lisp 方言
    SuperMild
        68
    SuperMild  
       2018-05-18 15:20:03 +08:00
    @simpleliang 这个倒是有一个笨方法解决,就是有一个设置过程,初次使用时引导用户把语音命令念一遍,同时演示效果。这样做还有个好处,用户可以趁此机会自定义命令,因此不受语言影响,不管说英语、普通话还是粤语,反正就以用户念的为准。

    由于是一种全新的交互模式,第一次使用时有互动教程应该不会引起用户反感。
    tnter
        69
    tnter  
       2018-05-18 15:22:34 +08:00
    带动了嗓子药产业的发展 /dog
    hangzhoupm
        70
    hangzhoupm  
       2018-05-18 15:31:37 +08:00
    说的更不上思维的速度,效率会有很大的影响
    murmur
        71
    murmur  
       2018-05-18 15:36:06 +08:00
    @SuperMild

    格式化
    格式化
    cnm 让你格式化啊
    哎你 sb 么我让你把代码格式化没让你把 d 盘格了

    大概场景就是这样吧
    Admstor
        72
    Admstor  
       2018-05-18 16:28:49 +08:00
    @mcluyu
    那也依然不需要语音编程
    你说的第一点就实际上是 UML->代码,已经有一些工具可以帮助实现,自动编程这个领域也在做类似的发展
    第二点,图形这一块也显然是鼠标键盘甚至触摸的效率更高,也与语音毫无关系

    语音仅仅是为一些障碍人士使用的辅助工具,试图代替主流工具目前看不到任何可能性
    simpleliang
        73
    simpleliang  
       2018-05-18 17:26:09 +08:00
    @SuperMild 恩也是一个很好的方案, 但是优缺点很明显

    优点是: 提高的识别准确性, 但前提是没有相似的语音命令, 再前提是命令比较少且结构简单

    缺点是: 如果有组合命令, 或命令很多, 那么准确性还是一样会打折扣; 给每个命令设置语音有点像设置快捷键, 如果命令很多, 这个过程还是比较磨人的
    SNOOPY963
        74
    SNOOPY963  
       2018-05-18 17:41:28 +08:00
    - - 感觉人和人直接把我重点的能力真的差太多。

    理论上可以。甚至能到非常可用的程度。

    上面说 PM 这么编程不厚道,PM 也是帮你们梳理过的,应该说老板(需求方)才是这么做的。


    无非是,目前机器智能程度,还不足以自己定义某一个东西。要做到理想的程度,起码还需要一两个技术突破。
    这个时间上是不确切的。
    Symo
        75
    Symo  
       2018-05-18 17:43:11 +08:00
    其实是有的, 盲人程序员.
    确实比普通程序员编码速度更慢一些, 但是通过语音输入可以完成
    hxd
        76
    hxd  
       2018-05-18 17:52:31 +08:00
    目前用眼睛写代码也许更容易实现一点,而且不打扰别人
    Yycreater
        77
    Yycreater  
       2018-05-18 18:30:27 +08:00
    @artvista 丫的,画面感~真强!服了!!~
    pandaaa
        78
    pandaaa  
       2018-05-18 19:07:54 +08:00
    @artvista 你要笑死我继承我的橘子吗?
    Shawn5
        79
    Shawn5  
       2018-05-18 19:15:02 +08:00
    可以想象在一个办公室,大家一起用语音编码的场景,估计直逼菜市场吧,哈哈啊哈哈哈哈啊哈哈
    param
        80
    param  
       2018-05-19 01:30:50 +08:00 via Android
    我觉得,只要设计一门专用于语音编程的语言也未必不行。通常文字都是基于语言的。
    param
        81
    param  
       2018-05-19 01:32:46 +08:00 via Android
    其实我之前还想过用眼球来控制光标,应该会比 hjkl 方便
    leekafai
        82
    leekafai  
       2018-05-19 09:27:11 +08:00 via Android
    control A,delete
    ahjsrhj
        83
    ahjsrhj  
       2018-05-19 16:38:19 +08:00
    @SuperMild #52 vim 相比效率更高吧
    kxxoling
        84
    kxxoling  
       2018-05-21 14:14:03 +08:00 via iPhone
    @mofe 自动的,粘链接记就可以了。
    onepunch
        85
    onepunch  
       2018-05-21 14:58:52 +08:00
    emmmmm 那写代码就费嗓子了 ,手动心疼一波 996 的朋友们 请准备好你们的金嗓子喉宝
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3514 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 11:05 · PVG 19:05 · LAX 04:05 · JFK 07:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.