鱼C论坛

 找回密码
 立即注册
查看: 1606|回复: 12

[已解决]jerryxjr1220的《让你的python帮你读文章》,为什么失败了?

[复制链接]
发表于 2016-12-10 11:26:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 jin6220 于 2016-12-10 11:29 编辑

import os

qq='【董明珠回应野蛮人敲门:只要是真正投资者 是谁都没关系】董明珠在中国企业领袖年会上回应险资敲门时表示:你是中国人,要和国家的发展结合在一起,希望这些人不要破坏中国制造,成为社会的罪人。董明珠提出,企业要将诚信放在第一位,如果真正是一个投资者,是谁都没关系。另外董明珠提到,格力还要做新能源汽车,格力手机没失败。'

i= os.system('mshta vbscript:createobject("sapi.spvoice").speak("%s")(window.close)' % qq)

上面这个失败了
读取不出来!!!
短点是内容可以读取出来
如下面这个:
import os

qq2='董明珠在中国企业领袖年会上回应险资敲门时表示:你是中国人,要和国家的发展结合在一起,希望这些人不要破坏中国制造,成为社会的罪人。汽车,格力手机没失败。'

i= os.system('mshta vbscript:createobject("sapi.spvoice").speak("%s")(window.close)' % qq2)
谁可以研究一下这是为什么呢?
原帖地址:
http://bbs.fishc.com/thread-77747-1-1.html
最佳答案
2016-12-10 14:32:05
SixPy 发表于 2016-12-10 14:19
搞定,这样就可以朗读全部内容了~~

这样辗转 hta - vbs - com 有点画蛇添足~
何必如此麻烦呢?
直接调用 com对象就OK了~
  1. txt=('【董明珠回应野蛮人敲门:只要是真正投资者是谁都没关系】'
  2.      '董明珠在中国企业领袖年会上回应险资敲门时表示:'
  3.      '你是中国人,要和国家的发展结合在一起,希望这些人不要破坏中国制造,成为社会的罪人。'
  4.      '董明珠提出,企业要将诚信放在第一位,如果真正是一个投资者,是谁都没关系。'
  5.      '另外董明珠提到,格力还要做新能源汽车,格力手机没失败。'
  6. )

  7. import win32com.client
  8. speaker = win32com.client.Dispatch("SAPI.SpVoice")
  9. speaker.Speak(txt)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-10 11:42:08 | 显示全部楼层
【】
你把这些特殊符号去掉,也许语音引擎不能识别~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-10 11:47:42 | 显示全部楼层
SixPy 发表于 2016-12-10 11:42
【】
你把这些特殊符号去掉,也许语音引擎不能识别~

6666666666666666666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-10 12:15:36 | 显示全部楼层
  1. qq='【董明珠回应野蛮人敲门:只要是真正投资者 是谁都没关系】董明珠在中国企业领袖年会上回应险资敲门时表示:你是中国人,要和国家的发展结合在一起,希望这些人不要破坏中国制造,成为社会的罪人。董明珠提出,企业要将诚信放在第一位,如果真正是一个投资者,是谁都没关系。另外董明珠提到,格力还要做新能源汽车,格力手机没失败。'

  2. import os
  3. vocdrv='mshta vbscript:createobject("sapi.spvoice").speak("%s")(window.close)'
  4. os.popen(vocdrv % qq[:149])
复制代码


经测试,朗读不能超过150个字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-10 13:33:27 | 显示全部楼层
SixPy 发表于 2016-12-10 12:15
经测试,朗读不能超过150个字符

嗯 我也测试了几遍 超过150个字就不能阅读了 很不爽啊
还想让python调用这个接口帮我读新闻呢!
再多一个字就不行了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-10 13:33:59 | 显示全部楼层
最多149

149

149
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-10 13:43:21 | 显示全部楼层
因为MAX_PATH =260,所以命令行的命令长度不能超过260。
朗读的文字加上其它部分就已经大于260了,所以不能执行这条命令……

另外我扯淡一下:
突然还是觉得VC的朗读API好用些,可以暂停,长度无上限(太长了会程序死掉),可输出wav……

评分

参与人数 1鱼币 +1 收起 理由
SixPy + 1 +1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-10 13:54:32 | 显示全部楼层
无符号整形 发表于 2016-12-10 13:43
因为MAX_PATH =260,所以命令行的命令长度不能超过260。
朗读的文字加上其它部分就已经大于260了,所以不 ...

我测试好几遍,也发现是命令行容量的限制
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-10 14:19:22 | 显示全部楼层
搞定,这样就可以朗读全部内容了~~

  1. import os
  2. vocdrv=('mshta vbscript:'
  3.         'createobject("sapi.spvoice").speak('
  4.         'CreateObject("Scripting.FileSystemObject")'
  5.         '.OpenTextFile("%s").readall)'
  6.         '(window.close)'
  7. )

  8. txt=('【董明珠回应野蛮人敲门:只要是真正投资者是谁都没关系】'
  9.     '董明珠在中国企业领袖年会上回应险资敲门时表示:'
  10.     '你是中国人,要和国家的发展结合在一起,希望这些人不要破坏中国制造,成为社会的罪人。'
  11.     '董明珠提出,企业要将诚信放在第一位,如果真正是一个投资者,是谁都没关系。'
  12.     '另外董明珠提到,格力还要做新能源汽车,格力手机没失败。'
  13. )

  14. txtfile = 'vioce.txt'
  15. open(txtfile,'w').write(txt)
  16. path = os.path.realpath(os.curdir) + os.sep + txtfile
  17. print('正在朗读:%s\n' % path, txt)
  18. os.popen(vocdrv % path )
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-10 14:32:05 | 显示全部楼层    本楼为最佳答案   
SixPy 发表于 2016-12-10 14:19
搞定,这样就可以朗读全部内容了~~

这样辗转 hta - vbs - com 有点画蛇添足~
何必如此麻烦呢?
直接调用 com对象就OK了~
  1. txt=('【董明珠回应野蛮人敲门:只要是真正投资者是谁都没关系】'
  2.      '董明珠在中国企业领袖年会上回应险资敲门时表示:'
  3.      '你是中国人,要和国家的发展结合在一起,希望这些人不要破坏中国制造,成为社会的罪人。'
  4.      '董明珠提出,企业要将诚信放在第一位,如果真正是一个投资者,是谁都没关系。'
  5.      '另外董明珠提到,格力还要做新能源汽车,格力手机没失败。'
  6. )

  7. import win32com.client
  8. speaker = win32com.client.Dispatch("SAPI.SpVoice")
  9. speaker.Speak(txt)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-12-10 16:37:11 | 显示全部楼层
SixPy 发表于 2016-12-10 14:32
这样辗转 hta - vbs - com 有点画蛇添足~
何必如此麻烦呢?
直接调用 com对象就OK了~

这个方法好
上面那个还要把内容放进txt里
装一个win32com就解决了
真大神!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-10 21:43:56 | 显示全部楼层
SixPy 发表于 2016-12-10 14:32
这样辗转 hta - vbs - com 有点画蛇添足~
何必如此麻烦呢?
直接调用 com对象就OK了~

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-11 23:27:03 | 显示全部楼层
这东西怎么停止啊   程序关了还在朗读
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-18 14:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表