单词发音脚本

用的是扇贝的 API ,如有侵权,联系即删。

在这里我要支持一下扇贝,虽然这个API不能翻译长句,但是所有的单词读音应该都是真人发音的,比一些用机器学习发音的质量要好很多。

测试环境:Python2

库依赖:playsound
如果没有可以执行 pip install playsound 进行安装

运行该脚本后,在浏览器输入http://localhost:8000/hello 即可发音,也可把hello换成其他的词,也可以自己改动接口。

#!/usr/bin/python2
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
from urllib import urlopen
from json import loads
import re

from playsound import playsound

letter = re.compile("^[a-zA-Z]+$")


class MyHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        word = self.path[1:]
        if (letter.match(word) == None):
            self.send_error(404)
            playsound('https://media-audio1.baydn.com/us%2Fe%2Fer%2Ferror_v4.mp3')
            return

        print('hello')
        url = 'https://www.shanbay.com/api/v1/bdc/search/?version=2&word='\
            + word
        json_str = urlopen(url).read().decode()

        data = loads(json_str)

        voice_url = data["data"]["audio_addresses"]["us"][0]

        playsound(voice_url)

        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()
        self.wfile.write(b'succeed')


def main():
    try:
        server = HTTPServer(('127.0.0.1', 8000), MyHandler)
        print'welcome to  the  server'
        server.serve_forever()
    except KeyboardInterrupt:
        print 'shutdong  doen server'
        server.socket.close()


if __name__ == '__main__':
    main()

说点什么

avatar
  Subscribe  
提醒