鱼C论坛

 找回密码
 立即注册
查看: 3362|回复: 20

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

[复制链接]
发表于 2023-3-11 19:36:58 | 显示全部楼层 |阅读模式
10鱼币
  1. import speech_recognition as sr

  2. r = sr.Recognizer()

  3. with sr.Microphone() as source:
  4.      print('Say Something')
  5.      audio = r.listen(source)
  6.      voice_data = r.recognize_google(audio)
  7.      print(voice_data)
复制代码



################################################

Traceback (most recent call last):
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311-32\Lib\urllib\request.py", line 1348, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311-32\Lib\http\client.py", line 1282, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311-32\Lib\http\client.py", line 1328, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311-32\Lib\http\client.py", line 1277, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311-32\Lib\http\client.py", line 1037, in _send_output
    self.send(msg)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311-32\Lib\http\client.py", line 975, in send
    self.connect()
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311-32\Lib\http\client.py", line 941, in connect
    self.sock = self._create_connection(
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311-32\Lib\socket.py", line 850, in create_connection
    raise exceptions[0]
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311-32\Lib\socket.py", line 835, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
最佳答案
2023-3-11 19:36:59
这个得爬梯子

最佳答案

查看完整内容

这个得爬梯子
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-3-11 19:36:59 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
这个得爬梯子
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-13 10:09:14 | 显示全部楼层
speech_recognition python函数库:其主要的作用是通过麦克风来将我们的录音保存到指定的文件中
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-13 10:10:34 | 显示全部楼层
s//zhuanlan.zhihu.com/p/359656966
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-18 21:39:33 | 显示全部楼层
讯飞语音转写API进行音频转文字OK

  1. # -*- coding: utf-8 -*-
  2. # 使用讯飞语音转写API进行音频转文字#
  3. import base64
  4. import hashlib
  5. import hmac
  6. import json
  7. import os
  8. import time
  9. import requests
  10. import urllib

  11. lfasr_host = 'https://raasr.xfyun.cn/v2/api'
  12. # 请求的接口名
  13. api_upload = '/upload'
  14. api_get_result = '/getResult'


  15. class RequestApi(object):
  16.     def __init__(self, appid, secret_key, upload_file_path):
  17.         self.appid = appid
  18.         self.secret_key = secret_key
  19.         self.upload_file_path = upload_file_path
  20.         self.ts = str(int(time.time()))
  21.         self.signa = self.get_signa()

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


  34.     def upload(self):
  35.         upload_file_path = self.upload_file_path
  36.         file_len = os.path.getsize(upload_file_path)
  37.         file_name = os.path.basename(upload_file_path)

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


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

  71. #这里是音乐文件的文件夹
  72. dir_path = r'D:\\Desktop\\mp3\\'
  73. fileList=[]

  74. # 输入讯飞开放平台的appid,secret_key和待转写的文件路径
  75. if __name__ == '__main__':
  76.     keyString=['微信','老爸']
  77.     fileList=os.listdir(dir_path)
  78.     for fileName in fileList:
  79.         print("正在识别:"+fileName)
  80.         dir=dir_path+fileName
  81.         api = RequestApi(appid="appid",
  82.                         secret_key="xxxxxxxxxxxxxxxxxx",
  83.                         upload_file_path=dir)
  84.         res=api.get_result()
  85.         obj=res['content']['orderResult']
  86.         for key in keyString:
  87.             if(key in obj):
  88.                 print(fileName+"--检测到关键字【"+key+"】")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-20 08:27:41 | 显示全部楼层
#这里是音乐文件的文件夹
dir_path = r'D:\\Desktop\\mp3\\'
fileList=[]

# 输入讯飞开放平台的appid,secret_key和待转写的文件路径
if __name__ == '__main__':
    keyString=['微信','老爸']
    fileList=os.listdir(dir_path)
    for fileName in fileList:
        print("正在识别:"+fileName)
        dir=dir_path+fileName
        api = RequestApi(appid="appid",
                        secret_key="xxxxxxxxxxxxxxxxxx",
                        upload_file_path=dir)
        res=api.get_result()
        obj=res['content']['orderResult']
        for key in keyString:
            if(key in obj):
                print(fileName+"--检测到关键字【"+key+"】")
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-20 08:43:08 | 显示全部楼层
dir_path = r'D:\\Desktop\\mp3\\'

or

dir_path = r'D:/Desktop/mp3/'
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-20 10:18:43 | 显示全部楼层
content: 主体、主结构

json对象,{a:1,b:2},     python中 访问a,    a=res["a"]

obj=res['content']    或者   print(res)


{'code': '000000', 'descInfo': 'success', 'content': {'orderInfo': {'orderId': 'DKHJQ2023032010143217800063C0035100000', 'failType': 11, 'status': -1, 'originalDuration': 200, 'realDuration': 269530, 'expireTime': 1679537585361}, 'orderResult': '{"lattice":[{"json_1best":"{\\"st\\":{\\"sc\\":\\"0.00\\",\\"pa\\":\\"0\\",\\"rt\\":[{\\"ws\\":[{\\"cw\\":[{\\"w\\":\\"没\\",\\"wp\\":\\"n\\",\\"wc\\":\\"0.0000\\"}],\\"wb\\":57,\\"we\\":92},{\\"cw\\":[{\\"w\\":\\"过多\\",\\"wp\\":\\"n\\",\\"wc\\":\\"0.0000\\"}],\\"wb\\":93,\\"we\\":152},{\\"cw\\":[{\\"w\\":\\"时\\",\\"wp\\":\\"n\\",\\"wc\\":\\"0.0000\\"}],\\"wb\\":153,\\"we\\":196},{\\"cw\\":[{\\"w\\":\\",\\",\\"wp\\":\\"p\\",\\"wc\\":\\"0.0000\\"}],\\"wb\\":196,\\"we\\":196}]}],\\"bg\\":\\"1290\\",\\"rl\\":\\"0\\",\\"ed\\":\\"3260\\"}}"},{"json_1best":"{\\"st\\":{\\"sc\\":\\"0.00\\",\\"pa\\":\\"0\\",\\"rt\\":[{\\"ws\\":[{\\"cw\\":[{\\"w\\":\\"宋江\\",\\"wp\\":\\"n\\",\\"wc\\":\\"0.0000\\"}],\\"wb\\":1,\\"we\\":64},{\\"cw\\":[{\\"w\\":\\"身\\",\\"wp\\":\\"n\\",\\"wc\\":\\"0.0000\\"}],\\"wb\\":65,\\"we\\":100},{\\"cw\\":[{\\"w\\":\\"死\\",\\"wp\\":\\"n\\",\\"wc\\":\\"0.0000\\"}],\\"wb\\":101,\\"we\\":164},{\\"cw\\":[{\\"w\\":\\",\\",\\"wp\\":\\"p\\",\\"wc\\":\\"0.0000\\"}],\\"wb\\":164,\\"we\\":164},{\\"cw\\":[{\\"w\\":\\"李逵\\",\\"wp\\":\\"n\\",\\"wc\\":\\"0.0000\\"}],\\"wb\\":165,\\"we\\":280},{\\"cw\\":[{\\"w\\":\\"身\\",\\"wp\\":\\"n\\",\\"wc\\":\\"0.0000\\"}],\\"wb\\":281,\\"we\\":328},{\\"cw\\":[{\\"w\\":\\"死\\",\\"wp\\":\\"n\\",\\"wc\\":\\"0.0000\\"}],\\"wb\\":329,\\"we\\":388},{\\"cw\\":[{\\"w\\":\\",\\",\\"wp\\":\\"p\\",\\"wc\\":\\"0.0000\\"}],\\"wb\\":388,\\"we\\":388}]}],\\"bg\\":\\"3430\\",\\"rl\\":\\"0\\",\\"ed\\":\\"7400\\"}}"},{"json_1best":"{\\"st\\":{\\"sc\\":\\"0.00\\",\\"pa\\":\\"0\\",\\"rt\\":[{\\"ws\\":[{\\"cw\\":[{\\"w\\":\\"死后\\",\\"wp\\":\\"n\\",\\"wc\\":\\"0.0000\\"}],\\"wb\\":1,\\"we\\":80},{\\"cw\\":[{\\"w\\":\\"两\\",\\"wp\\":\\"n\\",\\"wc\\":\\"0.0000\\"}],\\"wb\\":81,\\"we\\":124},{\\"cw\\":[{\\"w\\":\\"人\\",\\"wp\\":\\"n\\",\\"wc\\":\\"0.0000\\"}],
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-20 16:29:21 | 显示全部楼层
"code": "000000”,             ##### 返回的错误码
"descInfo": "success",        #####转写信息说明,
"content":{                       #####是请求返回体的主体

obj=res['content']['orderResult']   
返回示例:

  1. {
  2.         "code": "000000",
  3.         "descInfo": "success",
  4.         "content": {
  5.                 "orderId": "DKHJQ202209021522090215490FAAE7DD0008C",
  6.                 "taskEstimateTime": 28000
  7.         }
  8. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-20 16:31:47 | 显示全部楼层
  1. {
  2.         "code": "000000",
  3.         "descInfo": "success",
  4.         "content": {
  5.                 "orderInfo": {
  6.                         "orderId": "DKHJQ2022090510220905100562536FEF00062",
  7.                         "failType": 0,
  8.                         "status": 4,
  9.                         "originalDuration": 200,
  10.                         "realDuration": 1878
  11.                 },
  12.                 "orderResult": "{"lattice":[{"json_1best":"{\\"st\\":{\\"sc\\":\\"0.86\\",\\"pa\\":\\"0\\",\\"rt\\":[{\\"ws\\":[{\\"cw\\":[{\\"w\\":\\"这\\",\\"wp\\":\\"n\\",\\"wc\\":\\"1.0000\\"}],\\"wb\\":1,\\"we\\":16},{\\"cw\\":[{\\"w\\":\\"是\\",\\"wp\\":\\"n\\",\\"wc\\":\\"1.0000\\"}],\\"wb\\":17,\\"we\\":36},{\\"cw\\":[{\\"w\\":\\"一\\",\\"wp\\":\\"n\\",\\"wc\\":\\"1.0000\\"}],\\"wb\\":37,\\"we\\":52},{\\"cw\\":[{\\"w\\":\\"条\\",\\"wp\\":\\"n\\",\\"wc\\":\\"1.0000\\"}],\\"wb\\":53,\\"we\\":80},{\\"cw\\":[{\\"w\\":\\"测试\\",\\"wp\\":\\"n\\",\\"wc\\":\\"1.0000\\"}],\\"wb\\":81,\\"we\\":116},{\\"cw\\":[{\\"w\\":\\"音频\\",\\"wp\\":\\"n\\",\\"wc\\":\\"1.0000\\"}],\\"wb\\":117,\\"we\\":172},{\\"cw\\":[{\\"w\\":\\"。\\",\\"wp\\":\\"p\\",\\"wc\\":\\"0.0000\\"}],\\"wb\\":172,\\"we\\":172},{\\"cw\\":[{\\"w\\":\\"\\",\\"wp\\":\\"g\\",\\"wc\\":\\"0.0000\\"}],\\"wb\\":172,\\"we\\":172}]}],\\"bg\\":\\"50\\",\\"rl\\":\\"0\\",\\"ed\\":\\"1840\\"}}"}],"lattice2":[{"lid":"0","end":"1840","begin":"50","json_1best":{"st":{"sc":"0.86","pa":"0","rt":[{"nb":"1","nc":"1.0","ws":[{"cw":[{"w":"这","wp":"n","wc":"1.0000"}],"wb":1,"we":16},{"cw":[{"w":"是","wp":"n","wc":"1.0000"}],"wb":17,"we":36},{"cw":[{"w":"一","wp":"n","wc":"1.0000"}],"wb":37,"we":52},{"cw":[{"w":"条","wp":"n","wc":"1.0000"}],"wb":53,"we":80},{"cw":[{"w":"测试","wp":"n","wc":"1.0000"}],"wb":81,"we":116},{"cw":[{"w":"音频","wp":"n","wc":"1.0000"}],"wb":117,"we":172},{"cw":[{"w":"。","wp":"p","wc":"0.0000"}],"wb":172,"we":172},{"cw":[{"w":"","wp":"g","wc":"0.0000"}],"wb":172,"we":172}]}],"pt":"reserved","bg":"50","si":"0","rl":"0","ed":"1840"}},"spk":"段落-0"}]}",
  13.                 "taskEstimateTime": 0
  14.         }
  15. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-20 19:55:54 | 显示全部楼层
冬, 寒,枣   :  \\ 反斜杆
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-21 08:28:29 | 显示全部楼层
2. 音频编辑
这个自动化脚本将为你编辑音频文件,你可以提取声音、合并声音、播放声音、分割/切割声音等等,通过这个脚本,终于可以扔掉那些付费软件了。

from pydub import AudioSegment
from pydub.utils import mediainfo
from pydub.playback import play
————————————————
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-21 08:29:49 | 显示全部楼层
# 分割音频
sound = AudioSegment.from_file("music.mp3", format="mp3")
sound_1 = sound[:10000]
sound_2 = sound[10000:]
sound_1.export("music_1.mp3", format="mp3")
sound_2.export("music_2.mp3", format="mp3")
————————————————
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-21 15:54:52 | 显示全部楼层
mp3文件切割成3个:ffmpeg.exe    ffplay.exe   ffprobe

  1. import base64
  2. import hashlib
  3. import hmac
  4. import json
  5. import os
  6. import time
  7. import requests
  8. import urllib
  9. from pydub import AudioSegment
  10. from pydub.utils import make_chunks
  11. import os, re

  12. dir_path = r'D:/Desktop/mp4test/mp3/'
  13. fileList1=[]

  14. # 输入讯飞开放平台的appid,secret_key和待转写的文件路径
  15. # for index in range(0,len(fileName)):

  16. if __name__ == '__main__':
  17.    
  18.     fileList=os.listdir(dir_path)
  19.     print("列表中文件名1",fileList)   
  20.     fileList2 = [f[:-4] for f in fileList]


  21.     for fileName in fileList:
  22.         print("列表中文件名"+fileName)         
  23.         dir=dir_path+fileName
  24.         sound = AudioSegment.from_file(dir, format="mp3")#你的音频文件的路径

  25.         fileName_1 = sound[:100000]
  26.         fileName_2 = sound[100000:200000]
  27.         fileName_3 = sound[200000:]
  28.         fileName = fileName[:-4]
  29.         fileName_1.export("D:/Desktop/mp4test/mp3-3/"+fileName+"_1.mp3", format="mp3")
  30.         fileName_2.export("D:/Desktop/mp4test/mp3-3/"+fileName+"_2.mp3", format="mp3")
  31.         fileName_3.export("D:/Desktop/mp4test/mp3-3/"+fileName+"_3.mp3", format="mp3")
  32.         
  33.    
  34.         #print("正在识别2:"+mp3)



  35.         
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-22 09:23:53 | 显示全部楼层
chunks = make_chunks(mp3, 10000)  # 将文件切割为10s一块

  1. for each in os.listdir("D:/PycharmProjects/拾音器/"):  # 循环目录

  2.     filename = re.findall(r"(.*?)\.mp3", each)  # 取出.mp3后缀的文件名
  3.     print(each)
  4.     if each:

  5.         mp3 = AudioSegment.from_file('D:/PycharmProjects/拾音器//{}'.format(each), "mp3")  # 打开mp3文件
  6.         #         # # mp3[17*1000+500:].export(filename[0], format="mp3") #
  7.         size = 10000  # 切割的毫秒数 10s=10000

  8.         chunks = make_chunks(mp3, size)  # 将文件切割为10s一块

  9.         for i, chunk in enumerate(chunks):
  10.             chunk_name = "{}-{}.mp3".format(each.split(".")[0], i)    # 也可以自定义名字
  11.             print(chunk_name)
  12.             chunk.export('D:/PycharmProjects/拾音器2/{}'.format(chunk_name), format="mp3")  # 新建的保存文件夹
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-23 20:32:25 | 显示全部楼层
语音转文字:


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

  2.         # 用正则匹配所有的汉字
  3.         matches = pattern.findall(str(obj))
  4.         sencent = ""
  5.         for i in range(len(matches)):
  6.             sencent += matches[i]

  7.         with open("20230323.txt","w") as f:
  8.             f.write(sencent)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-23 21:24:07 | 显示全部楼层
使用pallhub自动加标点

pip install paddlehub
pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple

import paddlehub as hub      
mode = hub.Module(name='auto_punc', version='1.0.0')    //使用模型
punc_texts = mode.add_puncs(sencent)   // 获取最终结果,其中sencent是未断句的文本
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-24 15:15:56 | 显示全部楼层
sys.exit(app.exec_())      #退出应用,并返回值到 父进程。  app.exec_(),运行主循环
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-24 18:27:09 | 显示全部楼层
pip install paddlehub -i https://mirrors.aliyun.com/pypi/simple --only-binary :all:

pip install paddlehub -i https://mirror.baidu.com/pypi/simple

这个库应该是 paddlehub,而不是 paddlepaddle


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-25 17:49:47 | 显示全部楼层
用 3.7版本ok:

pip install requests
pip install paddlehub==2.3.1
pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
pip install scipy
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-24 22:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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