语音识别(利用python将语音转化为文字)(升级版)

这篇具有很好参考价值的文章主要介绍了语音识别(利用python将语音转化为文字)(升级版)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

基于语音识别(1)进行的完善,修改了60秒断触的问题,另外可以更加方便的调用,语音识别1的链接如下:
https://blog.csdn.net/m0_46657126/article/details/124531081


一、申请讯飞语音端口

1.点击链接进入讯飞平台主页面

https://www.xfyun.cn/

2.在页面注册自己的个人账户

ps:注册账户是完全免费的,因为我之前已经注册过一个了,这里就不重复介绍了,注册之后看个人情况进行个人认证,这个不影响之后的操作。

3.申请语音端口

python 讯飞语音转文字 fuwu diaoyong,语音识别,python,xcode
python 讯飞语音转文字 fuwu diaoyong,语音识别,python,xcode
python 讯飞语音转文字 fuwu diaoyong,语音识别,python,xcode
ps:申请内容大概像我这样写就行,名字重复的话换一个

4.查看自己的端口编码

python 讯飞语音转文字 fuwu diaoyong,语音识别,python,xcode
python 讯飞语音转文字 fuwu diaoyong,语音识别,python,xcode
python 讯飞语音转文字 fuwu diaoyong,语音识别,python,xcode
python 讯飞语音转文字 fuwu diaoyong,语音识别,python,xcode
python 讯飞语音转文字 fuwu diaoyong,语音识别,python,xcode
python 讯飞语音转文字 fuwu diaoyong,语音识别,python,xcode

二、python代码讲解

1.代码如下(实例)

代码如下(示例):

# -*- encoding:utf-8 -*-
import hashlib
import hmac
import base64
from socket import *
import json, time, threading
from websocket import create_connection
import websocket
from urllib.parse import quote
import logging
import pyaudio
import re


# reload(sys)
# sys.setdefaultencoding("utf8")
class Client():
    def __init__(self):
        logging.basicConfig()

        self.app_id = ""
        self.api_key = ""
        base_url = "ws://rtasr.xfyun.cn/v1/ws"
        ts = str(int(time.time()))
        tt = (self.app_id + ts).encode('utf-8')
        md5 = hashlib.md5()
        md5.update(tt)
        baseString = md5.hexdigest()
        baseString = bytes(baseString, encoding='utf-8')

        apiKey = self.api_key.encode('utf-8')
        signa = hmac.new(apiKey, baseString, hashlib.sha1).digest()
        signa = base64.b64encode(signa)
        signa = str(signa, 'utf-8')
        self.end_tag = "{\"end\": true}"

        self.ws = create_connection(base_url + "?appid=" + self.app_id + "&ts=" + ts + "&signa=" + quote(signa))
        self.trecv = threading.Thread(target=self.recv)
        self.trecv.start()

    def send(self):
        CHUNK = 300  # 定义数据流块
        FORMAT = pyaudio.paInt16  # 16bit编码格式
        CHANNELS = 1  # 单声道
        RATE = 16000  # 16000采样频率
        p = pyaudio.PyAudio()
        # 创建音频流
        stream = p.open(format=FORMAT,  # 音频流wav格式
                        channels=CHANNELS,  # 单声道
                        rate=RATE,  # 采样率16000
                        input=True,
                        frames_per_buffer=CHUNK)

        print("- - - - - - - Start Recording ...- - - - - - - ")
        while True:
            # file_object = stream.read(CHUNK)
            index = 1
            while True:
                chunk = stream.read(1280)
                if not chunk:
                    break
                self.ws.send(chunk)

                index += 1
                time.sleep(0.04)

        # self.ws.send(bytes(self.end_tag.encode('utf-8')))
        # print("send end tag success")

    def recv(self):
        try:
            while self.ws.connected:
                result = str(self.ws.recv())
                if len(result) == 0:
                    print("receive result end")
                    break
                result_dict = json.loads(result)
                # 解析结果
                if result_dict["action"] == "started":
                    print("handshake success, result: " + result)

                if result_dict["action"] == "result":
                    result = ''
                    result_1 = re.findall('"w":"(.*?)"', str(result_dict["data"]))
                    for i in result_1:
                        if i == '。' or i == '.。' or i == ' .。' or i == ' 。':
                            pass
                        else:
                            result += i
                    print("翻译结果:" + result)
                    # 写入文本文件
                    tep = open('tep.txt', 'w', encoding='utf-8')
                    tep.write(result)
                    tep.close()
                    # print("rtasr result: " + result_1)

                if result_dict["action"] == "error":
                    print("rtasr error: " + result)
                    self.ws.close()
                    return
        except websocket.WebSocketConnectionClosedException:
            print("receive result end")

    def close(self):
        self.ws.close()
        print("connection closed")


def runc():
    client = Client()
    client.send()


if __name__ == '__main__':
    logging.basicConfig()
    client = Client()
    client.send()

2.代码需要修改的部分

python 讯飞语音转文字 fuwu diaoyong,语音识别,python,xcode

3.包的导入

Ps:因为没有新的Project Interpreter,所以不记得有什么包需要重新引入,唯一有印象的只有pyaudio了,所以这里就只提供了pyaudio的引入方法,其他的好像直接导入就可以了。

1)首先:下载安装 pyaudio 的 whl 文件
下载网址:https://www.lfd.uci.edu/~gohlke/pythonlibs/
2)该界面上输入ctrl+f,搜索pyaudio
3)下载
重点:一定要根据自己的版本进行下载!!!,每个人不一定是一样的。
python 讯飞语音转文字 fuwu diaoyong,语音识别,python,xcode
4)记录下载文件的安装路径,如果换位置,则记住新的位置
5)安装
键盘输入win+r,输入cmd打开终端模式
假设我的下载位置为D盘的杂项文件夹,那么可以先利用cd转到D盘
python 讯飞语音转文字 fuwu diaoyong,语音识别,python,xcode
再转到杂项
python 讯飞语音转文字 fuwu diaoyong,语音识别,python,xcode

进行安装
python 讯飞语音转文字 fuwu diaoyong,语音识别,python,xcode
然后输入pip install 文件名称即可
python 讯飞语音转文字 fuwu diaoyong,语音识别,python,xcode

回车,安装结束

4.结果演示

python 讯飞语音转文字 fuwu diaoyong,语音识别,python,xcode


总结

以上主要是对第一篇语音识别的更新,因为很多小伙伴提出了出现的问题,依次对其进行了改进。文章来源地址https://www.toymoban.com/news/detail-771867.html

到了这里,关于语音识别(利用python将语音转化为文字)(升级版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium升级版

    1.1原理 Selenium 是一个 Web 应用的自动化框架。 通过它,我们可以写出自动化程序,像人一样在浏览器里操作web界面。 比如点击界面按钮,在文本框 中输入文字 等操作。(相当于真正的浏览) 而且还能从web界面获取信息。 比如获取12306票务信息,招聘网站职位信息,财经网

    2024年01月16日
    浏览(47)
  • 爬虫练习-12306自动购票升级版

    hello兄弟们,偷懒归来了。别问为啥这么久没更,问就是失踪了 最近一直在学习Django以及爬虫进阶之类的知识,加上快期末了,一直没有想起来自己还有一个账号没有更新,sorry啦 言归正传,今天抽空把前面的文章升级了一下。这里先把整理好的代码提前放给大家 代码放上,

    2024年02月06日
    浏览(61)
  • C语言猜数字升级版

    题目概述 猜数字是一种益智游戏,既可以两个人一起玩,也可以与电脑一起玩。现在我们需要将这个游戏移到电脑上,让电脑与我们一起玩猜数字游戏. 需求分析 用户输入:确定用户输入的数据是否正确 游戏过程:保证计算机能正确选定一个随机数字,并能够正常与用户互

    2024年02月04日
    浏览(55)
  • 爱心发射代码带名字升级版

    上次的爱心发射发出来之后,群友想问能不能把心爱的人名字放在爱心中间。 当然没问题啊,于是我就改了改代码,让女神王铁蛋显示在爱心中间,同时还可以在屏幕上飘动满屏的王铁蛋,大大小小、快快慢慢的王铁蛋。 这还拿不下王铁蛋? 话不多说,直接上效果图。 背景

    2024年02月11日
    浏览(48)
  • 单身狗问题(初级)兼(升级版)

    所属专栏:经典算法题❤️ 🚀 博主首页:初阳785❤️ 🚀 代码托管:chuyang785❤️ 🚀 感谢大家的支持,您的点赞和关注是对我最大的支持!!!❤️ 🚀 博主也会更加的努力,创作出更优质的博文!!❤️ 🚀 关注我,关注我,关注我,重要的事情说三遍!!!!!!!!

    2024年02月16日
    浏览(43)
  • 【Anaconda】jupyter notebook的升级版jupyter Lab4.0的安装配置,自学Python利器,你值得拥有!新工具你装了没?

    前几天,jupyter lab4.0已经发布,因为chatgpt的火爆,貌似都没太多人关注jupyter lab 新版本的发布这事了。 不过,如果你想自学Python,一定不要错过这个自学Python的利器。 我想每个Python程序员都会知道Jupyter Notebook 这个工具。 Jupyter Notebook 就像是一个神奇的“魔法记事本”,让你

    2024年02月12日
    浏览(70)
  • 云计算中网络基础知识(升级版)

    网络相连:电脑-交换机-电脑 需要配置两个地址:(1) IP地址、子网掩码、网关(网络的出口)。 (2) MAC 地址(物理地址)不需要配置,电脑网卡自带的(天生就有) 电脑必须要配置IP地址、子网掩码 才可以通信、网关可以不用(前提是两台电脑处在同一个网段下) 网关

    2023年04月27日
    浏览(43)
  • P1553 数字反转(升级版)(JAVA)

    以下为原题面,仅供参考: 给定一个数,请将该数各个位上数字反转得到一个新数。 这次与 NOIp2011 普及组第一题不同的是:这个数可以是小数,分数,百分数,整数。整数反转是将所有数位对调;小数反转是把整数部分的数反转,再将小数部分的数反转,不交换整数部分与小

    2024年02月13日
    浏览(45)
  • EasyExcel复杂表头导出(一对多)升级版

            在之前写的 EasyExcel复杂表头导出(一对多)的博客的结尾,受限于当时的能力和精力,留下一些问题及展望。现在写下此博客,目的就是解决之前遗留的问题。         背景介绍,见上述链接指向的博客,这里主要通过 自定义拦截器 的形式来完美解决。 对于图

    2024年02月06日
    浏览(62)
  • 【Unity+MySQL】实现注册登录系统(升级版)

    接着 上篇文章所谈到的系统缺陷,这篇文章进行升级解决。 问题 :注册界面与登录界面是同一个界面,导致用户输入用户密码进行注册后,即可点击登录。 解决 :在同一个场景中分别创建注册界面和登录界面,使用SetActive控制注册/登录成功后UI的显示与隐藏。 整体的UI框

    2024年02月09日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包