

大家好,这里是程序员晚枫,正在all in AI编程实战。
第19讲:AI语音处理——让AI听懂你说的话
AI语音的两大方向
- 语音转文字(STT):录音→文字
- 文字转语音(TTS):文字→语音
1、安装语音库
1
| pip install openai python-office
|
2、语音转文字(STT)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| from openai import OpenAI
client = OpenAI(api_key="你的Key", base_url="https://api.deepseek.com")
with open("录音.mp3", "rb") as audio_file: client_silicon = OpenAI( api_key="你的硅基Key", base_url="https://api.siliconflow.cn/v1" ) transcript = client_silicon.audio.transcriptions.create( model="FunAudioLLM/SenseVoiceSmall", file=audio_file )
print(transcript.text)
|
3、文字转语音(TTS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| from openai import OpenAI
client = OpenAI( api_key="你的硅基Key", base_url="https://api.siliconflow.cn/v1" )
response = client.audio.speech.create( model="fishaudio/fish-speech-1.5", voice="中文女声", input="大家好,这里是程序员晚枫,欢迎来到AI编程训练营!" )
前3讲可以试听,试听链接:https://www.bilibili.com/cheese/play/ss982042944
with open("output.mp3", "wb") as f: f.write(response.content)
print("语音已生成:output.mp3")
|
4、实战:会议纪要生成器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| from openai import OpenAI
client = OpenAI(api_key="你的Key", base_url="https://api.deepseek.com") client_silicon = OpenAI( api_key="你的硅基Key", base_url="https://api.siliconflow.cn/v1" )
def meeting_minutes(audio_path): with open(audio_path, "rb") as f: transcript = client_silicon.audio.transcriptions.create( model="FunAudioLLM/SenseVoiceSmall", file=f ) text = transcript.text print(f"转录完成,共{len(text)}字") response = client.chat.completions.create( model="deepseek-chat", messages=[{ "role": "user", "content": f"""请根据以下会议录音内容,生成会议纪要: 1. 会议主题 2. 参与者 3. 关键讨论点(3-5条) 4. 决议事项 5. 后续行动
录音内容: {text}""" }] ) return response.choices[0].message.content
minutes = meeting_minutes("会议录音.mp3") print(minutes)
|
5、实时语音助手
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import office
def voice_assistant(): """简单的语音助手""" while True: user_input = input("请输入问题(输入'退出'结束):") if user_input == "退出": break response = client.chat.completions.create( model="deepseek-chat", messages=[{"role": "user", "content": user_input}] ) answer = response.choices[0].message.content print(f"AI:{answer}")
voice_assistant()
|
6、常见问题
Q:语音识别准确率不高?
A:选择好的模型,录音质量要清晰,避免背景噪音。
Q:TTS声音不自然?
A:选择高质量的语音模型,如fish-speech。
下讲预告
学会了AI语音处理,下一讲我们学 AI数据分析——让AI帮你做数据洞察。
敬请期待!
程序员晚枫专注AI编程培训,小白看完他和图灵社区合作的教程《30讲 · AI编程训练营》就能上手做AI项目。