码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python音频转文字调用baidu


    python音频转文字调用的是百度智能云的接口,因业务需求会涉及比较多数字,所以这里做了数字的处理,可根据自己的需求修改。

    1. from flask import Flask, request, jsonify
    2. import requests
    3. from flask_limiter import Limiter
    4. app = Flask(__name__)
    5. limiter = Limiter(app) # 初始化限流扩展
    6. API_KEY = "" #百度智能云上获取
    7. SECRET_KEY = ""
    8. import re
    9. from cn2an import an2cn, transform
    10. def replace_chinese_numbers(text):
    11. # 使用正则表达式匹配句子中的中文数字
    12. chinese_numbers = re.findall(r'[零一二三四五六七八九十百千万]+', text)
    13. # 遍历匹配到的中文数字,逐一替换为阿拉伯数字
    14. for chinese_number in chinese_numbers:
    15. arabic_number = transform(chinese_number, 'cn2an')
    16. text = text.replace(chinese_number, arabic_number)
    17. return text
    18. @app.route('/transcribe', methods=['POST'])
    19. @limiter.limit("5 per second") # 设置限流规则为最多同时 5 个请求
    20. def transcribe_audio():
    21. audio_data = request.data
    22. access_token = get_access_token()
    23. if not access_token:
    24. return jsonify({"error": "Error getting access token"}), 500
    25. url = "https://vop.baidu.com/server_api"
    26. headers = {
    27. 'Content-Type': 'audio/pcm; rate=16000', # 设置正确的 Content-Type
    28. 'Accept': 'application/json',
    29. }
    30. params = {
    31. "cuid": "your_unique_id", # 替换为你的用户唯一标识,随便写
    32. "token": access_token,
    33. }
    34. response = requests.post(url, headers=headers, params=params, data=audio_data)
    35. if response.status_code == 200:
    36. try:
    37. result = response.json()
    38. if "result" in result:
    39. transcript = result["result"][0]
    40. cleaned_transcript = replace_chinese_numbers(transcript)
    41. print(cleaned_transcript)
    42. return jsonify({"transcript": cleaned_transcript})
    43. else:
    44. return jsonify({"error": "No transcription found in the response"}), 500
    45. except UserWarning as warning:
    46. # 如果出现 UserWarning 异常,返回未处理的 transcript
    47. warnings.warn(str(warning))
    48. return jsonify({"transcript": transcript})
    49. else:
    50. return jsonify({"error": "Error in transcription request"}), 500
    51. def get_access_token():
    52. url = "https://aip.baidubce.com/oauth/2.0/token"
    53. params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
    54. response = requests.post(url, params=params)
    55. if response.status_code == 200:
    56. access_token = response.json().get("access_token")
    57. return access_token
    58. else:
    59. print("Error getting access token:", response.text)
    60. return None
    61. if __name__ == '__main__':
    62. app.run(host='0.0.0.0', port=16258)

  • 相关阅读:
    Java学习笔记(四)——程序控制结构
    虚心型性格分析,虚心型人格的职业规划
    餐饮冷库安全守护神:可燃气体报警器检定的科学性与有效性
    Android进阶:5、发送post请求、json数据格式以及okhttp框架的使用
    fastadmin/thinkPHPQueue消息队列详细教程
    【单细胞高级绘图】08.细胞通讯_两组比较_气泡图
    【高级RAG技巧】在大模型知识库问答中增强文档分割与表格提取
    前端react 18.2整合ckeditor富文本编辑器——配置插件、自定义toolbar工具栏
    我总结了3个做好事情的万能动作,简单高效!
    大语言模型(LLM)Token 概念
  • 原文地址:https://blog.csdn.net/weixin_44740756/article/details/132687182
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号