python实现免费同声传译 (离线语音识别+免费翻译接口+系统声音录制)

您所在的位置:网站首页 声音翻译点 python实现免费同声传译 (离线语音识别+免费翻译接口+系统声音录制)

python实现免费同声传译 (离线语音识别+免费翻译接口+系统声音录制)

2023-11-30 10:15| 来源: 网络整理| 查看: 265

前言

前段时间碰到个英文面试,结果差点因为听不懂美式发音的python(派送)而GG了。。。我一直说的都是"派森"。。。所以就有个想法,英文电话会议的时候是不是可以做一个实时翻译的小工具,这样就可以给我这样的口语渣渣多点提示了。

So,让我们开始吧

第一步 语音识别ASR

测试了百度和AWS的语音识别效果,都还行,就是都要钱,而我的目标是给所有小伙伴免费用,所以怎么能收费呢————因此转进免费ASR库VOSK,它是用离线的模型计算的,准确性是不如在线API的,但是好在不要钱。参考地址

第二步 免费的翻译接口~

这个也是有各种API存在的,不过和前面一样的问题,折腾了几次最后决定用谷歌的免费API,每小时1000次请求,感觉也差不多刚好够用。也碰到了一些问题。好在最后搞定了。

2023.4.21更新: 谷歌关闭了cn节点,虽然可以通过修改hosts连接,但是感觉也不稳定。建议换成其他翻译sdk,比如百度翻译。

第三步 音频录制

最后发现这个才是最难的地方。。。尤其是mac平台 MAC

安装pyaudio: 1

brew install portaudio pip3 install pyaudio

用brew按照portaudio时我报了个 Error: pkg-config: wrong number of arguments (given 1, expected 0) 错误,用brew update-reset修复了

2 安装虚拟声卡blakhole 这东西的作用是把系统声音做成一个输入。而pyaudio只能抓输入。

brew install blackhole-2ch

3 设置MIDI mac应用中搜索midi设置 新增一个多输出设备,选择blackhole和你的耳机或者扬声器。这样声音就会既被你听到,又被blackhole转成了一个输出。增加完之后需要右键将这个设备设置成输出设备。

在这里插入图片描述

测试代码

# -*- coding: utf-8 -*- # @date : 2022/3/1 2:52 下午 # @author : meng_zhihao # @email : [email protected] import sounddevice as sd import scipy.io.wavfile # Recording properties SAMPLE_RATE = 48000 SECONDS = 10 # Channels MONO = 1 STEREO = 2 print(sd.query_devices()) # 打印设备列表 这里的输出设备会显示为>xxx # Command to get all devices listed: py -m sounddevice # Device you want to record # sd.default.device = "外置麦克风" # 貌似mac有坑 sd.default.device[0] = 0 # 我的BlackHole是第0个设备,所以这里sd.default.device[0] = n, n选择0 fs = 48000 sd.default.samplerate = fs print(f'Recording for {SECONDS} seconds') # Starts recording recording = sd.rec(int(SECONDS * SAMPLE_RATE), samplerate=SAMPLE_RATE, channels=MONO) sd.wait() # Waits for recording to finish print("done recording") scipy.io.wavfile.write("test3.wav", SAMPLE_RATE, recording, ) # 貌似文件名不能重 代码整合

最后的成品项目地址:https://github.com/MemoryAndDream/freeRealtimeTranslation/

似乎国内连谷歌翻译挂了。。。这个我也没办法,可以考虑改成国内的翻译SDK

windows

windows 研究了一下发现和mac的区别是不需要装什么额外的虚拟声卡。 开始-运行-输入mmsys.cpl 录制-右键立体混音-启用 然后在脚本里选择立体混音对应的设备编号即可。

更多语言支持

实际上这个工具也可以在你看外语视频的时候实时翻译,所以———— 加上VOSK的日语库就能翻译日语了呢。。。。。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3