PHP를 사용하여 Windows SAPI5 또는 TTS (텍스트 음성 변환)에 액세스하려고합니다. 표준 접근법은 "SAPI.SpVoice"에 대한 COM 객체를 생성 한 다음 설치된 음성을 얻는 것입니다.PHP COM 개체가 올바른 결과를 반환하지 않는 이유는 무엇입니까?
샘플 PHP 코드 :
<?php
$obj = new COM('SAPI.SpVoice');
$voices = $obj->GetVoices;
$count = $voices->Count;
print $count; #prints "1"
내가 5 목소리가 내 시스템에 설치되어 있지만, PHP는 그래서 1
을 반환하기 때문에 불행하게도 PHP의 COM 개체에서 반환 된 출력이 단지 확인, 잘못 이 PHP 특정 문제가 있다면, 나는 펄 5.8 (딸기)에 동일한 코드를 썼다.
샘플 펄 코드 :
#!/usr/bin/perl
use Win32::OLE;
my $obj = Win32::OLE->new('SAPI.SpVoice');
my $voices = $obj->GetVoices;
my $count = $voices->Count;
print $count; #print "5" which is correct.
그래서 제대로 펄 코드는 내 시스템에 5 TTS의 목소리를 가지고 반환하지만 PHP는 1을 반환?
이 버그입니까? 아니면 내가 잘못하고 있습니까? 이것의 가능한 원인은 무엇일까요?
P. 두 개의 다른 컴퓨터에서이 작업을 시도했지만 결과는 같습니다.
내 생각에 혼자서 알아 냈습니다. 32 비트 버전의 PHP를 사용하면 올바른 결과 (5 개의 음성)를 얻는 것처럼 보입니다. 그러나 기본적으로 64 비트 버전을 설치 했으므로 1 음성 만 얻습니다. 이제 해결되었습니다 .. 고마워요! – supersan
추신 어떤 모드라도 내가이 질문으로 무엇을해야하는지 말해 줄 수 있습니까? 이 의견을 해결책으로 게시해야합니까, 아니면 그대로 두어야합니까? 감사. – supersan
문제에 대한 해결책을 찾은 경우 직접 답변을 게시하고 수락하는 것이 좋습니다. http://stackoverflow.com/help/self-answer –