python语音录入转文字代码能用的不要上面这个转不了
时间: 2023-07-29 22:13:57 浏览: 94
好的,以下是Python语音录入转文字的代码示例:
```python
import speech_recognition as sr
# 初始化一个Recognizer对象
r = sr.Recognizer()
# 使用默认的系统麦克风录音
with sr.Microphone() as source:
print("请说话...")
audio = r.listen(source)
try:
# 将录音转换成文本
text = r.recognize_google(audio, language='zh-CN')
print("你说的是:{}".format(text))
except sr.UnknownValueError:
print("无法识别")
except sr.RequestError as e:
print("请求错误:{}".format(e))
```
这里使用了Python的第三方库 `SpeechRecognition`,需要先使用 `pip` 安装:
```
pip install SpeechRecognition
```
使用上述代码,可以录音并将语音转换成文本输出。
相关问题
python语音录入转文字代码能用的
可以使用Python的SpeechRecognition库来实现语音录入转文字功能。以下是一个简单的示例代码:
```python
import speech_recognition as sr
# 创建一个Recognizer对象
r = sr.Recognizer()
# 打开麦克风并开始录音
with sr.Microphone() as source:
print("请开始说话...")
audio = r.listen(source)
# 将录制的音频转换为文字
try:
text = r.recognize_google(audio, language='zh-CN')
print("你说的话是:" + text)
except sr.UnknownValueError:
print("抱歉,无法理解你说的话。")
except sr.RequestError as e:
print("无法连接到Google服务器。" + str(e))
```
注意:在使用该代码之前,需要先安装SpeechRecognition库和PyAudio库。可以使用以下命令进行安装:
```
pip install SpeechRecognition
pip install PyAudio
```
python语音录入转文字代码可以转文字的不要用speech——recognition库
如果不使用 `SpeechRecognition` 库,可以使用Python自带的 `pyaudio` 库录制音频,再使用百度或讯飞等语音识别API进行语音转换。以下是示例代码:
```python
import wave
import urllib.request
import urllib.parse
import json
import base64
import hashlib
import time
import hmac
import random
# 配置百度AI开放平台的API信息
APP_ID = 'your_app_id'
API_KEY = 'your_api_key'
SECRET_KEY = 'your_secret_key'
# 获取当前时间戳
def get_cur_time():
return int(time.time())
# 获取随机数
def get_random():
return random.randint(0, 100000000)
# 将音频文件转换成Base64编码的字符串
def get_file_content(file_path):
with open(file_path, 'rb') as f:
return base64.b64encode(f.read()).decode('utf-8')
# 计算签名
def get_sign(params):
sign_str = ''
for k in sorted(params.keys()):
sign_str += '{}={}'.format(k, params[k])
sign_str += SECRET_KEY
sign = hmac.new(sign_str.encode('utf-8'), digestmod=hashlib.sha256).hexdigest()
return sign
# 调用百度语音识别API进行语音转换
def baidu_asr(file_path):
# 配置请求参数
url = 'http://vop.baidu.com/server_api'
headers = {
'Content-Type': 'application/json'
}
audio = get_file_content(file_path)
params = {
'dev_pid': '1536', # 普通话(支持简单的英文识别)
'format': 'wav',
'rate': '16000',
'channel': 1,
'cuid': 'python_asr',
'len': len(audio),
'speech': audio,
'token': '',
'mac': '',
'timestamp': get_cur_time(),
'nonce': get_random()
}
params['sign'] = get_sign(params)
data = json.dumps(params).encode('utf-8')
# 发送请求
req = urllib.request.Request(url, data=data, headers=headers)
resp = urllib.request.urlopen(req)
result = json.loads(resp.read().decode('utf-8'))
# 解析结果
if result.get('err_no') == 0:
text = result.get('result')[0]
print('识别结果:{}'.format(text))
else:
print('识别失败:{}'.format(result.get('err_msg')))
# 录制音频并保存为WAV格式文件
def record_audio(file_path, seconds):
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 16000
p = pyaudio.PyAudio()
frames = []
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
print('*' * 10, '开始录音', '*' * 10)
for i in range(0, int(RATE / CHUNK * seconds)):
data = stream.read(CHUNK)
frames.append(data)
print('*' * 10, '结束录音', '*' * 10)
stream.stop_stream()
stream.close()
p.terminate()
wf = wave.open(file_path, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()
# 测试
if __name__ == '__main__':
file_path = 'test.wav'
record_audio(file_path, 5)
baidu_asr(file_path)
```
以上代码调用了百度语音识别API进行语音转换,需要先在百度AI开放平台注册账号,并创建语音识别应用。请将代码中的 `your_app_id`、`your_api_key`、`your_secret_key` 替换成自己的应用信息。
阅读全文