Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中使用wav文件录制音频和语音到文本的转换_Python_Audio_Speech Recognition_Wav_Speech To Text - Fatal编程技术网

在Python中使用wav文件录制音频和语音到文本的转换

在Python中使用wav文件录制音频和语音到文本的转换,python,audio,speech-recognition,wav,speech-to-text,Python,Audio,Speech Recognition,Wav,Speech To Text,我正在尝试录制音频并用python将其转换为文本。下面是我的代码 import speech_recognition as sr import sounddevice as sd import numpy as np import os from scipy.io.wavfile import write fs = 44100 # Sample rate seconds = 15 # Duration of recording print("Start recording the answ

我正在尝试录制音频并用python将其转换为文本。下面是我的代码

import speech_recognition as sr
import sounddevice as sd
import numpy as np
import os
from scipy.io.wavfile import write

fs = 44100  # Sample rate
seconds = 15  # Duration of recording
print("Start recording the answer.....")
myrecording = sd.rec(int(seconds * fs), samplerate=fs, channels=2)
sd.wait()  # Wait until recording is finished
write('output.wav', fs, myrecording.astype(np.int16))  # Save as WAV file in 16-bit format
recognizer = sr.Recognizer()
sound = "output.wav"

with sr.AudioFile(sound) as source:
   recognizer.adjust_for_ambient_noise(source)
   print("Converting the answer to text...")
   audio = recognizer.listen(source)

   try:
      text = recognizer.recognize_google(audio)
      print("The converted text:" + text)

   except Exception as e:
      print('Exception',e)
当我播放output.wav文件时,其中没有任何内容。因此,语音到文本的转换也有例外。有人能给出一个解决方案吗?
提前感谢。

我会尝试加载另一个wav文件,分别测试sounddevice和speech_识别器部分。我正在做一些类似的事情,双方都单独工作,但一起出现了一个问题,因为sounddevice在float 32中写入WAV,而且语音识别器似乎需要int32。在转换为int16时,可能出现了一些问题。如果你使用大胆,你确定它是沉默的吗?我尝试使用wavio来编写文件,但是从文档中看不出sampwidth应该是什么

更新:我能够让sounddevice录制音频以使用sound_识别库,方法是在开头添加以下行:
sounddevice.default.dtype='int32','int32'
输入和输出的默认值都是float32。出于某种原因,我不明白,仅更改输出并不能解决问题。用于文件写入的声音文件或scipy工作。
而且,audacity仍然相信WAV是浮动的。。。我想当我从audacity导出一个文件时,bc上可能会发生其他事情,头看起来与不兼容的文件相同,但语音识别器接受它。

我会尝试加载另一个wav文件,分别测试sounddevice和语音识别器部分。我正在做一些类似的事情,双方都单独工作,但一起出现了一个问题,因为sounddevice在float 32中写入WAV,而且语音识别器似乎需要int32。在转换为int16时,可能出现了一些问题。如果你使用大胆,你确定它是沉默的吗?我尝试使用wavio来编写文件,但是从文档中看不出sampwidth应该是什么

更新:我能够让sounddevice录制音频以使用sound_识别库,方法是在开头添加以下行:
sounddevice.default.dtype='int32','int32'
输入和输出的默认值都是float32。出于某种原因,我不明白,仅更改输出并不能解决问题。用于文件写入的声音文件或scipy工作。 而且,audacity仍然相信WAV是浮动的。。。我想当我从audacity导出文件时,可能会发生其他事情,头看起来与不兼容的文件相同,但speech_Recognitor接受它