美文网首页
使用python播放wav语音

使用python播放wav语音

作者: 安安爸Chris | 来源:发表于2019-07-20 11:25 被阅读0次

实现的方法可能有很多种,这里我主要使用的是wave+pyAudio来实现。
阻塞调用方式

import os
import pyaudio
import wave

CHUNK = 1024

# 1. Get the file path to the included audio example
audio_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), "audio")
audio_file =  os.path.join(audio_path, "node2.wav")
print("audio_file :",audio_file )

wf = wave.open(audio_file, 'rb')
print("samplewidth:", wf.getsampwidth())
print("channles:",wf.getnchannels())
print("framerate:",wf.getframerate())

p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
                channels = wf.getnchannels(),
                rate= wf.getframerate(),
                output=True)
data = wf.readframes(CHUNK)

while len(data) >0:
    stream.write(data)
    data = wf.readframes(CHUNK)

stream.stop_stream()
stream.close()
wf.close()
p.terminate()

回调调用方式

import os
import pyaudio
import wave
import time

def callback(in_data, frame_count, time_info, status):
    data = wf.readframes(frame_count)
    return (data, pyaudio.paContinue)

# 1. Get the file path to the included audio example
audio_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), "audio")
audio_file =  os.path.join(audio_path, "node2.wav")
print("audio_file :",audio_file )

wf = wave.open(audio_file, 'rb')
print("samplewidth:", wf.getsampwidth())
print("channles:",wf.getnchannels())
print("framerate:",wf.getframerate())

p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
                channels = wf.getnchannels(),
                rate= wf.getframerate(),
                output=True,
                stream_callback=callback)
stream.start_stream()

while stream.is_active():
    time.sleep(0.1)

stream.stop_stream()
stream.close()
wf.close()
p.terminate()

具体参考文档如下
https://people.csail.mit.edu/hubert/pyaudio/docs/

相关文章

  • 使用python播放wav语音

    实现的方法可能有很多种,这里我主要使用的是wave+pyAudio来实现。阻塞调用方式 回调调用方式 具体参考文档...

  • 关于SoundPool播放失败提示 sample 4 not R

    1、最近使用Android的SoundPool进行多个语音提示的播放时遇到问题,最开始使用wav格式的声音,有的机...

  • 11_使用SDL播放WAV

    播放WAV 对于WAV文件来说,可以直接使用ffplay命令播放,而且不用像PCM那样增加额外的参数。因为WAV的...

  • 转码

    ios 不能播放amr格式。ios 录制的音频位wav格式。 wav转amr可以使用opencore框架

  • 思必驰语音唤醒,录音机噪音数据的处理

    写入的音频文件需要加wav头部信息才能使用普通的播放过器播放,参考 Wav数据格式的44个字节头部信息汇总 and...

  • python播放音频

    anaconda建立环境 python=3.7.9切换到虚拟环境里安装pyaudio这个库好像只能播放.wav文件...

  • golang 使用科大讯飞进行语音合成与识别

    golang 使用科大讯飞进行语音合成与识别 使用科大讯飞 API 进行语音合成和识别,可识别wav和pcm文件 ...

  • 播放 WAV

    一、使用命令行播放 二、使用 SDL2 API 播放 1、创建 Qt 工程,参考 Mac开发环境搭建[everno...

  • android音视频学习之路任务二

    使用AudioRecord录制音频,并转化成Wav格式,再播放 一 、了解AudioRecord AudioRec...

  • SPIFLASH播放语音芯片HX8088方案

    前言: 早期的语音芯片。简单一些的都是OTP的语音芯片,只能播放低采样率的WAV文件,音质差,存储声音类容也是极其...

网友评论

      本文标题:使用python播放wav语音

      本文链接:https://www.haomeiwen.com/subject/tqbylctx.html