鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: wideband

[已解决]语音识别测试:ConnectionRefusedError: 由于目标计算机积极拒绝,无法连接。

[复制链接]
 楼主| 发表于 2023-3-25 20:28:23 | 显示全部楼层
音频转文字,搜索关键词ok:
# -*- coding: utf-8 -*-
# 使用讯飞语音转写API进行音频转文字#
import base64
import hashlib
import hmac
import json
import os
import time
import requests
import urllib
import re
import paddlehub as hub
mode = hub.Module(name='auto_punc', version='1.0.0')
lfasr_host = 'https://raasr.xfyun.cn/v2/api'
# 请求的接口名
api_upload = '/upload'
api_get_result = '/getResult'


class RequestApi(object):
    def __init__(self, appid, secret_key, upload_file_path):
        self.appid = appid
        self.secret_key = secret_key
        self.upload_file_path = upload_file_path
        self.ts = str(int(time.time()))
        self.signa = self.get_signa()

    def get_signa(self):
        appid = self.appid
        secret_key = self.secret_key
        m2 = hashlib.md5()
        m2.update((appid + self.ts).encode('utf-8'))
        md5 = m2.hexdigest()
        md5 = bytes(md5, encoding='utf-8')
        # 以secret_key为key, 上面的md5为msg, 使用hashlib.sha1加密结果为signa
        signa = hmac.new(secret_key.encode('utf-8'), md5, hashlib.sha1).digest()
        signa = base64.b64encode(signa)
        signa = str(signa, 'utf-8')
        return signa


    def upload(self):
        upload_file_path = self.upload_file_path
        file_len = os.path.getsize(upload_file_path)
        file_name = os.path.basename(upload_file_path)

        param_dict = {}
        param_dict['appId'] = self.appid
        param_dict['signa'] = self.signa
        param_dict['ts'] = self.ts
        param_dict["fileSize"] = file_len
        param_dict["fileName"] = file_name
        param_dict["duration"] = "200"
        data = open(upload_file_path, 'rb').read(file_len)
        response = requests.post(url =lfasr_host + api_upload+"?"+urllib.parse.urlencode(param_dict),
                                headers = {"Content-type":"application/json"},data=data)
        result = json.loads(response.text)
        return result


    def get_result(self):
        uploadresp = self.upload()
        orderId = uploadresp['content']['orderId']
        param_dict = {}
        param_dict['appId'] = self.appid
        param_dict['signa'] = self.signa
        param_dict['ts'] = self.ts
        param_dict['orderId'] = orderId
        param_dict['resultType'] = "transfer,predict"
        status = 3
        # 建议使用回调的方式查询结果,查询接口有请求频率限制
        while status == 3:
            response = requests.post(url=lfasr_host + api_get_result + "?" + urllib.parse.urlencode(param_dict),
                                     headers={"Content-type": "application/json"})
            result = json.loads(response.text)
            status = result['content']['orderInfo']['status']
            if status == 4:
                break
            time.sleep(5)
        #print("get_result resp:",result)
        return result

#这里是音乐文件的文件夹
dir_path = r'D:\\pythonProject13\\mp3\\'
fileList=[]

# 输入讯飞开放平台的appid,secret_key和待转写的文件路径
if __name__ == '__main__':
    keyString=['微信','老爸']
    fileList=os.listdir(dir_path)
    for fileName in fileList:
        time.sleep(2)
        print("正在识别:"+fileName)
        dir=dir_path+fileName
        api = RequestApi(appid="1485995d",
                        secret_key="a5fe900e4baff4234241690022143024",
                        upload_file_path=dir)
        res=api.get_result()
        obj=res['content']['orderResult']




        pattern = re.compile("[\u4e00-\u9fff]+")

        # 用正则匹配所有的汉字
        matches = pattern.findall(str(obj))
        sencent = ""
        for i in range(len(matches)):

            sencent += matches[i]


        print(sencent)
        punc_texts = ""
        m = (len(sencent)/10)
        for i in range(10):

            punc_texts += mode.add_puncs(sencent[int(i*m):int(i*m+m)])[0]
        with open("202303292.txt","w") as f:
            f.write(punc_texts)


        for key in keyString:
            if(key in obj):
                print(fileName+"--检测到关键字【"+key+"】")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 05:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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