AdvertCN - 广告中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

PropellerAds
Google-Bing-Mediago-Criteo开户
⚡️按条S5代理⚡️静态⚡️独享⚡️5G广告专用虚拟卡/U充值/高返点皇家代理IP⚡️#1性价比⚡️
Mediabuy⚡️玩家开户首选【鲁班跨境通-自助充值转账】FB/GG/TT❤️官方免费开户Affiliate 全媒体流量资源⚡️
Taboola/Outbrain /Bing⚡️一级代理开户投流-7*24h❤️人工在线【官方】❤️搜索套利买量投流开户独立站⚡️开户投放
⚡️AdsPower:安全不封号,高效自动化Google FB TK游戏代投⚡️E.PN 虚拟卡⚡️FB BM不限额,短id账单户
BINOM TRACKER 60% OFF!比Adplexity还好用的Spy工具ADPLEXITY + ADVERTCN7200W全球动态不重复住宅IP代理
虚拟信用卡+独立站收款全球虚拟卡, 支持U充值各种主页、账单户、BM户(优势)⚡️TikTok企业户,bm户,账单户
IPCola原生住宅IP⚡️$1.8/条双ISP提供TK企业新户老户、谷歌新户老户PTM虚拟卡[全新卡BIN+高返点]FB虚拟卡⚡️消费越多返现越多
FB稳定代理/住宅IP/ADV50打五折 FB个号1块一个寻找顶级电商?AdsBranded等你!TK老户/国内外端口/预审/加白
SX.ORG 高质量代理⚡235+ 地区GG,FB,TK, 欧美源头, 欢迎合作广告位出租8500万高质量住宅IP,助力各种需求
虚拟卡返佣1%,国内持牌机构   
查看: 21023|回复: 4

[求助] 求一个英文转化语音的网站

[复制链接]

22

主题

193

广告币

465

积分

中级会员

Rank: 3Rank: 3

积分
465
发表于 2020-7-20 15:06:35 | 显示全部楼层 |阅读模式
回复

使用道具 举报

12

主题

668

广告币

801

积分

中级会员

Rank: 3Rank: 3

积分
801
发表于 2020-7-20 16:20:57 | 显示全部楼层
google一下,好多。免费的,不限次...
.
寻----兼职机会★懂英语★熟外贸★写文案★会视频剪辑
V❤:丫iωu⑤①⑧⑧
.
.
回复 支持 反对

使用道具 举报

2

主题

888

广告币

1274

积分

高级会员

Rank: 4

积分
1274

社区QQ达人

发表于 2020-7-20 16:56:14 | 显示全部楼层
naturalreaders
回复 支持 反对

使用道具 举报

6

主题

303

广告币

310

积分

初级会员

Rank: 2

积分
310
发表于 2020-7-20 20:12:52 | 显示全部楼层
  1. 5 k8 \, e  P9 y0 i- I+ n
  2. # -*- coding: UTF-8 -*-
    3 ?9 d" D# c3 m2 w
  3. import requests6 K* u' G, b8 R% ^( f8 }$ T
  4. import os
    9 @: a3 ^7 L6 L4 {- O8 D7 E8 [1 w: o
  5. import subprocess
    2 ~. Z  ^3 d( c6 N+ P5 V5 s
  6. import sys) F7 u. y1 {* \3 I! x) W& h
  7. from tqdm import tqdm/ b( m& t& z6 y# x  M" A* \5 U2 c
  8. import time,random
    4 W3 Z& U+ f& L3 F. n4 f8 ^
  9. from HTMLParser import HTMLParser4 F5 Q5 q4 x  K; ^* z
  10. import sys  9 _, y' s; n% W) q( y/ k6 L- B  \
  11. reload(sys)  , O6 _, x+ K* H, ^& e8 s
  12. sys.setdefaultencoding('utf8') . [7 H6 p- f- {. I; @0 ?; e9 S4 R7 k

  13. # V2 y% m4 ?2 x3 G! R
  14. class WebRequest(object):2 V4 B6 v) f* p) w3 a9 B
  15.     def __init__(self, *args, **kwargs):. B3 Y  W, @& V% i1 M! r$ B
  16.         pass
    4 W( y) Q, k' b
  17. 9 y( X) L& y4 {7 h8 Y
  18.     @property
    # H6 f" M- N2 a1 `
  19.     def user_agent(self):3 x# ?2 d7 Q! W! V' O# P' P
  20.         """" X, Y  `. K8 F6 r
  21.         return an User-Agent at random
    : N# P9 A: ]6 s3 t! T
  22.         :return:
    / D' a. q& H5 g/ x
  23.         """
    ! T; [7 L( t4 c+ {7 c3 L6 i/ y
  24.         ua_list = [1 t9 \1 W) R; M* ~" I! o8 ~7 d+ E
  25.             'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101',* ?: S6 |* `3 t0 H" i4 ^
  26.             'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122',/ m9 M9 `3 f: ?" I
  27.             'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71',
    8 e; w+ _# `$ k/ k" g' B
  28.             'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95',# ^! C0 K* u& ]% c; l
  29.             'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71',
    ) G1 \( ~" W" o* W* A. u7 r
  30.             'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)',1 c( b5 L" W' f- `" n
  31.             'Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50',
      ?2 f+ \2 n% b7 r
  32.             'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0',. `& Y5 \, r* C. V# p4 l' f$ L
  33.             ]& g0 t; z% B. z( ~" a0 L9 r
  34.         return random.choice(ua_list)
    3 m( v% Y% u* N% k. X  R9 X# X

  35. * G' a3 R5 z8 Z+ z9 T$ H
  36.     @property) X" p. _: J, g4 \* a% L8 {
  37.     def header(self):
    5 a6 ?" l* U9 \7 U9 d" C3 X$ M
  38.         """) h# M+ f6 `; O" b5 ^/ w& X! |
  39.         basic header  z( ]/ K/ C; T& E1 u6 }
  40.         :return:) d2 D% e& E+ q5 U
  41.         """
    ! J; H0 C5 c; `* N8 |
  42.         return {'User-Agent': self.user_agent,, S5 g+ H1 n5 E5 F4 ~
  43.                 'Accept': '*/*',
    + n4 A0 o* b# L+ n: P! @  T
  44.                 'Connection': 'keep-alive',
    2 h+ v# @" o( H0 @) V: C, j' H
  45.                 'Accept-Language': 'zh-CN,zh;q=0.8'}/ @  N1 @  ]7 g1 H, o. E1 v) z

  46. - h$ k8 Q. G: R4 P$ I2 o% `; N+ M) C
  47.     def get(self, url, header=None, retry_time=5, timeout=30,2 [# w, ^% R% c. W4 n. [$ m; U9 i
  48.             retry_flag=list(), retry_interval=5, *args, **kwargs):
    . N3 O0 g/ L0 {- y" N$ k" _
  49.         """
    - H8 u% T7 x- u+ n- o
  50.         get method) K* u! O6 \0 P' T% T2 Y4 v
  51.         :param url: target url" ^- w* p: z4 O, o1 C7 X" @! H
  52.         :param header: headers* B  c. x: W  r3 h
  53.         :param retry_time: retry time when network error
    8 F. Q3 {- ]7 y) y( X7 ~
  54.         :param timeout: network timeout( V8 q7 H& E( F0 A
  55.         :param retry_flag: if retry_flag in content. do retry
    0 n& H2 ]) C+ {3 a
  56.         :param retry_interval: retry interval(second)
    / t* g" G" p+ R/ Q
  57.         :param args:5 ~7 r0 l- _: g/ u
  58.         :param kwargs:  x* V' {) r' c5 z
  59.         :return:
    ) B& k; x; S1 P! t
  60.         """
    ! k4 F/ e. [  z5 _& F# B) t
  61.         headers = self.header
    2 i9 \& j6 r9 T# m4 S
  62.         if header and isinstance(header, dict):8 u% p2 f  R% g  t
  63.             headers.update(header)9 V1 K+ n7 W$ X$ L, |/ k
  64.         while True:
    7 E2 o. L  t# k+ [5 _9 v
  65.             try:  H6 L, z/ t! `3 r* r5 w3 ~
  66.                 html = requests.get(url, headers=headers, timeout=timeout, stream=True)
    6 o! F, _2 |* R3 e: {3 A" x( M& M2 N: {0 p8 g
  67.                 print 'content size: %d' % len(html.content)
    : L2 E& L. F3 E# ~* y
  68.                 if any(f in html.content for f in retry_flag):
    # y3 T3 h; `2 H1 m
  69.                     raise Exception
    5 r$ R0 b" z- _, Q1 k6 c
  70.                 if not html.content:
    5 b8 ^0 x: ]" W; e% b$ T% o; m+ e
  71.                     print 'content is Null,retry...~' + url2 \) S2 N) s9 Y; Q
  72.                     raise Exception
    2 i( R8 p) e# \. w
  73.                 return html2 [" [6 u& I) m% n
  74.             except Exception as e:! y8 U8 R& `0 X3 K( X2 y
  75.                 print(e)
    ' V0 J, {3 i4 f! }, l
  76. 3 T' I, G" h, [8 g! M' B
  77. 8 R8 k& q# e: L% ~+ {9 r+ M2 j1 ?
  78. def DownloadAudio(url, path, refer=None):$ @0 q( E2 u, Z, H  ]
  79.         with open(path, 'wb') as handle:  L% U* f1 j+ t% J9 s' f. X8 S5 L
  80.                 if refer:% i- g( `' m* g* U6 s- z* J
  81.                                 hdr = {9 I5 R# _$ B9 c3 \! \
  82.                                    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
    8 X; O0 h# H" u0 M* A
  83.                                    'Referer': refer}
    6 z* M( D. |7 ]: ^1 q0 V
  84.                 else:
    6 Z4 f7 M5 c! }3 D4 g8 K5 `5 o  S$ T5 K
  85.                                 hdr = {. t4 ~1 q; U, d/ C6 D- {5 ]
  86.                                    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',: J2 H4 Z; _2 {! J
  87.                                    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',6 M5 K/ H8 c# f% ?
  88.                                    'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
    7 ^2 Q! |  q( p4 ~$ q8 d+ K
  89.                                    'Accept-Encoding': 'none',% Q$ a3 I% c4 G) a
  90.                                    'Accept-Language': 'en-US,en;q=0.8',' s! W. |3 @5 Z9 Q
  91.                                    'Connection': 'keep-alive'}7 W9 ^2 l  _: _' N* w- w
  92.                 wr = WebRequest()
      P+ N7 a, v, {9 k
  93.                 #print hdr7 t4 u& j: U1 ?9 G* z6 A
  94.                 response = wr.get(url,header=hdr)
    & z1 C# }- `5 W8 I4 f
  95.                 #html = requests.get('https://www.example.com', proxies={"http": "http://{}".format(p!r!o!x!y)})
    3 N" W: l" s( K6 @$ P0 I! K6 Y- C
  96.                 #response = requests.get(url, stream=True, headers={'User-agent': 'Mozilla/5.0'}); `2 e9 O  d+ S/ l6 ]; K
  97.                 #print url
    4 k- G6 t7 [/ @$ d8 S/ z1 g
  98.                 for block in tqdm(response.iter_content(),ascii=True, desc='ImageDownload'):7 ^- {" S+ d" f  L
  99.                         if not block:* H1 e% C' p: ~1 N
  100.                                 break
    ' x( w% h: E; s/ ?, x
  101.                         handle.write(block); C, M) L" i' N0 e6 U6 r4 X1 f% [
  102. / I; q& h; |+ o' K) `+ O0 R! [
  103. def translate(to_translate, to_langage="auto", langage="auto"):! _% l3 a, F$ \
  104. '''Return the translation using google translate
    * V4 o+ |6 m! k& d
  105. you must shortcut the langage you define (French = fr, English = en, Spanish = es, etc...)
    * M3 P! ]; p' j% w# G
  106. if you don't define anything it will detect it or use english by default
    * L9 w. e" E' n4 Y. ]4 r" J  ^  C
  107. Example:
    . R/ w# @5 a% K! Y( c8 a: O
  108. print(translate("salut tu vas bien?", "en"))
    # `8 P6 Z! Z& j( b( U: ~. X1 U
  109. hello you alright?'''
    % F3 [/ ~6 R' H1 C; Z/ t0 P
  110. agents = {'User-Agent':"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)"}
    5 d) @# q6 @0 B0 p- n+ V0 c
  111. before_trans = 'class="t0">'
    % k5 ~# \' r7 X4 A7 t
  112. link = "http://translate.google.com/m?ie=UTF-8&hl=%s&sl=%s&q=%s" % (to_langage, langage, to_translate.replace(" ", "+"))! c# b  J3 O0 C" i+ y+ w7 \1 L! \
  113. request = requests.get(link, headers=agents)' h- a9 ~$ Q; O9 @
  114. page = request.content
    8 E/ Z. Y/ k/ k
  115. #print page
    7 f! E! G; s6 q/ V
  116. result = page[page.find(before_trans)+len(before_trans):]2 X$ D3 {. F! T" k" J; q
  117. result = result.split("<")[0]/ ^7 }4 b; @8 ?
  118. return result7 T: r5 c1 H7 [9 _1 z

  119. / Q/ q. y4 v, r5 F3 j: t
  120. tsxt_sen = [], l% U* A+ A! m! o
  121. from nltk.tokenize import sent_tokenize/ e0 G6 e% j0 V; G
  122. def sentence_split(sentence): # 编写分句函数
      u8 n$ r6 }0 S/ \! ?8 O0 C, w9 v
  123.     text_sen = []
    5 V1 f9 y& L' i& {9 [
  124.     for s in sentence.split(','):9 y; q& M0 @! {" T& D1 B
  125.        # if '?' in s:4 ^; S8 y* S0 H2 a8 E$ R5 P
  126.        #     tsxt_sen.extend(s.split('?'))7 p; j& L. s$ q
  127.        # elif ',' in s:. Y' z& s/ s6 n8 i( P% z
  128.        #     tsxt_sen.extend(s.split(','))
    / A0 g& i; F, E8 S7 K* M
  129.        # else:0 R: k. [; j1 O6 W" p
  130.        text_sen.append(s)" k8 s9 o$ p3 n) @
  131.     return tsxt_sen1 j/ Q) T) m' k. d
  132. ! ]2 I/ S9 j+ [: h
  133. 0 q  Q  z% C. s9 L8 N3 L
  134. str = '''3 e: ^* j/ j$ W9 Y6 j
  135. It has not quite been greeted with the enthusiasm of the bottles of Scotch in the novel Whisky Galore, but the arrival of a cargo of pineapples on the shores of northern Scotland has sent scavengers rushing to the beach.# A  Z( Z7 ?' w, e$ y: u/ H6 a

  136. ) |; l/ J! e- E2 w% o. B) {8 Y
  137. The fruit, which has appeared on Shetland and on beaches across the Western Isles, is thought to have come from several containers lost overboard in the Atlantic last October by cargo ship MV Lombok Strait.
    4 \8 v! N. Q4 n* z- W$ y+ {2 T
  138. 0 x/ H3 }. w$ N+ y8 `
  139. Shetland islanders have now shared photos of their fruitful haul, in a story that echoes the plot of Whisky Galore, the 1947 novel by Sir Compton Mackenzie, later made and remade for the big screen.
    " p4 P" H( G, R- l

  140. ) K# _( u! _6 O1 ^: v# r
  141. The story tells of how the locals find their island awash with whisky after a ship loaded with liquor is wrecked off a fictional Scottish island. - e$ N" }  H& f2 R; P' y0 y9 p

  142. 0 T6 S: Y4 j# X/ r# a
  143. The plot was based on the real-life salvage operations carried out by locals when the SS Politician, carrying 280,000 bottles of malt whisky, ran aground on Eriskay in 1943.
    . e8 b9 n7 M/ Y/ V

  144. * `( W# [0 V$ k; q. C2 }/ `' c5 l* n
  145. The arrival of the pineapples will be far less lucrative for beachcombers, and not as profitable, either, as the grounding of the cargo ship MSC Napoli off Branscombe beach in Devon in 2007.7 n8 M/ L( s) J; W5 M
  146. 5 ^" H4 M: Z) t0 K
  147. Then scavengers ignored police advice and arrived in their droves to explore shipping containers, which contained motorbikes, pet food, wine barrels and anti-wrinkle cream.
    ! q7 m2 L' Z. J. u( s; d. |
  148. '''
    $ _8 G- t+ a# p' n+ `- f% v

  149. 0 W: z* f+ j# s. Z" J/ U

  150. 4 G  Q& }! c6 n0 D* z7 `3 }
  151. text = ''.join(str).strip().lstrip().rstrip().replace('\n',' ')
    5 o6 ^! L9 L1 z& \9 S
  152. with open('~/text.txt', 'wb') as handle:
    , l( s$ T3 ~$ W1 {) t
  153.     handle.write(text)
    : r. l9 Z' d) o4 I
  154. . r7 f; ]1 h$ \4 K0 p4 Z
  155. str = str.replace('”','"')7 G' [. w0 ?* V/ B5 x" n
  156. str = str.replace('“','"')
    # N/ q- w3 T: s2 c

  157. ( S% C+ U" l: Q% v- K
  158. ' L) H1 m: t9 \0 @) R2 d7 }
  159. def splitStr(str):- A1 {" ?& b+ X1 `8 q1 Z
  160.     arr = str.split(' '); T* ]0 m0 N# r' p5 r
  161.     sz = len(arr)  F# o. V" p; s9 a3 t
  162.     return [' '.join(arr[0:sz/2]),' '.join(arr[(sz/2):])]. O( W# b$ M- r4 ?# Y; J) p
  163.    
    5 [) }9 g6 {, L3 `6 E" K
  164. . K' D; M" T9 c) E* Y
  165. #print splitStr('with wording from North Korea about getting rid of its nuclear weapons and a guarantee from the United States that it would not interfere with the North’s regime or demand redress for human rights abuses.')8 i! ?9 \* y- J8 {' ?

  166. - B* n8 T& K0 \* u: ]' `4 D
  167. keyArr = []5 z2 F& J# S# K$ x6 e
  168. sent_tokenize_list = sent_tokenize(str)* h* ~. ~' g+ \( d
  169. for s in sent_tokenize_list:
    $ @# X( _- z" F2 t$ L: ~3 m9 P
  170.     sz = len(' '.join(s.split()))# E. O3 a' H% K" o0 O+ g  q- b. b9 m  j
  171.     if sz <= 190:9 C9 n  U; e6 k. \7 ?: z# p
  172.         keyArr.append(' '.join(s.split())). @8 J% m4 q  ]0 j, l! [  x1 c
  173.         #print '[ '+' '.join(s.split())+' ]'
    , P. o& s* Z6 E8 w; e) k
  174.     else:7 _2 P  C- i+ m2 f! A1 d2 J
  175.         for ses in s.split(','):
    # Y" {2 T' K$ b7 y/ T* X4 B
  176.             if len(ses) > 190:
    5 B; f8 {; {8 E/ Z" X/ R8 F6 n
  177.                 keyArr.extend(splitStr(ses))% ^" W* w4 k0 d
  178.             else:* V5 |& r+ Z' Y0 D# E& K
  179.                 keyArr.append(' '.join(ses.split()))1 l8 e" _* [4 d  s
  180. . p1 R- {7 N" h) {! Y" C* L
  181. # }. L3 V2 \) n5 f# }) a; }* A
  182. API_URL = "http://translate.google.com/translate_tts?ie=UTF-8&tl=en-us"
    + f# _; O- ?+ E5 W% t4 G
  183. #key = HTMLParser.unescape.__func__(HTMLParser, translate(str,'en'))9 o9 r2 z, T9 j! |5 {8 |% O
  184. #keyArr = sentence_split(str)( Y; @5 K8 ]6 V& T2 S+ Z
  185. + p; A8 ]' ?) T, A7 C7 J

  186. ' n. h  s! n2 w6 X
  187. #print([text[i:i+n] for i in xrange(0, len(text), n)])
    / W: m: r# \4 |# \4 ^& ?
  188. os.system('rm ~/tmp/audio/*.mp3')
    2 o1 k% I: c$ [5 z
  189. namei = 0
    . I- f+ X' |' y: r! z7 ^0 R
  190. for i in keyArr:8 j2 T! n5 d1 f2 e* X# v" t6 E
  191.     juzi = ' '.join(i.split())
    - W  v2 \& ], i$ U: h' s
  192.     sz = len(juzi)
    0 |  ]+ T; ~! a' I6 [# q2 o
  193.     link = API_URL+"&q="+juzi+"&client=tw-ob"6 W2 i1 G. S( O: _1 q3 ]( \
  194.     print link
    % C, E* H9 R7 w" |! a' q. Y) w
  195.     path = "~/tmp/audio/%d.mp3" % namei: }: a7 W! Y6 F# X# n
  196.         #print path& c; `2 j* H$ S
  197.     DownloadAudio(link,path), F4 M* i9 s: A- n9 E9 k/ N) C
  198.     os.system('file '+path)0 L" f8 }0 I2 b( ^* L
  199.     time.sleep(1), Y! n/ |; j$ c* J! i
  200.     namei = namei + 1! n# b( F8 v9 p0 V, X
复制代码
回复 支持 反对

使用道具 举报

100

主题

2066

广告币

3704

积分

金牌会员

Rank: 6Rank: 6

积分
3704
发表于 2020-7-20 21:07:36 | 显示全部楼层
https://azure.microsoft.com/en-u ... ces/text-to-speech/% A7 [# v% d, p: h5 k3 X

$ N6 N. ^" r% f1 R, b4 U+ H; P微软的,应该不错吧!~
已有1人评分           广告币           理由
     河小马         +10,000,000       太帅了
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|DMCA|广告服务|小黑屋|手机版|Archiver|Github|网站地图|AdvertCN

GMT+8, 2026-2-4 00:52 , Processed in 0.052606 second(s), 16 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

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